找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1251|回复: 5

[精彩文萃] ReadSQL with a/vlisp

[复制链接]

已领礼包: 264个

财富等级: 日进斗金

发表于 2016-9-15 14:30:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

  1. ;;____________________________________________________;;
  2. (defun C:SQ (/ adocmd ADOConn adorst data field fields n sqlQuery tmp)
  3.   (vl-load-com)
  4.   (setq        ADOConn        (vlax-create-object "ADODB.Connection")
  5.         ADORst        (vlax-create-object "ADODB.Recordset")
  6.   )
  7.   (vlax-invoke-method
  8.     ADOConn
  9.     'Open ;|SqlAutoCAD is database name|;
  10.     ;; may use Data Source=ServerName\\SQLEXPRESS; instead :
  11.     "Provider=SQLOLEDB.1;Data Source=.\\SQLEXPRESS;Initial Catalog=SqlAutoCAD;Integrated Security=SSPI"
  12.     nil
  13.     ""
  14.     -1
  15.    )
  16.   ;|Blocks is table name|;
  17.   ;; enclose table name and field name in squared brakets:
  18.   (setq sqlQuery "SELECT * FROM [Blocks] WHERE [Hdl] IS NOT NULL")
  19.   ;;[Hdl] is primary key, string (handle of block), see picture
  20.   (setq ADOcmd (vlax-create-object "ADODB.command"))
  21.   (vlax-put-property ADOcmd "ActiveConnection" ADOConn)
  22.   ;; (vlax-put-property cmd2 "CommandTimeout" 30); optional
  23.   (vlax-put-property ADOcmd "CommandText" sqlQuery)
  24.   (vlax-put-property ADOcmd "CommandType" 1)

  25.   (setq        ADORst (vl-catch-all-apply
  26.                  'vlax-invoke-method
  27.                  (list ADOcmd 'Execute nil 2 1)
  28.                )
  29.   )                                        ;OK

  30.   (setq fields (vlax-get-property ADORst 'Fields))
  31.   (vl-catch-all-apply
  32.     'vlax-invoke-method
  33.     (list ADORst 'movefirst)
  34.   )
  35.   (while (not (equal :vlax-true (vlax-get-property ADORst 'eof)))
  36.     (setq tmp nil
  37.           n   0
  38.     )
  39.     (while (not        (vl-catch-all-error-p
  40.                   (vl-catch-all-apply
  41.                     'vlax-get-property
  42.                     (list fields 'item n)
  43.                   )
  44.                 )
  45.            )

  46.       (setq field (vlax-variant-value
  47.                     (vlax-get-property
  48.                       (vlax-get-property fields 'item n)
  49.                       'value
  50.                     )
  51.                   )
  52.       )
  53.       (setq tmp (cons field tmp))
  54.       (setq n (1+ n))
  55.     )
  56.     (setq data (append data (list (reverse tmp))))
  57.     (vl-catch-all-apply
  58.       'vlax-invoke-method
  59.       (list ADORst 'movenext)
  60.     )
  61.   )
  62.   ;; use garbage cleaner before of the closing connection:
  63.   (gc)

  64.   (vlax-invoke-method ADOConn 'Close)
  65.   (vlax-release-object ADORst)
  66.   (vlax-release-object ADOcmd)
  67.   (vlax-release-object ADOConn)
  68.   (alert (vl-princ-to-string data))
  69.   ;; must use (vl-string-trim " " strvalue) for string values within the data list
  70.   ;; ---   next your job here   ---  ;;
  71.   (princ)
  72. )

评分

参与人数 1D豆 +5 收起 理由
WhoCanSay + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3731个

财富等级: 富可敌国

发表于 2016-9-16 08:07:57 | 显示全部楼层
回复学学习
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5586个

财富等级: 富甲天下

发表于 2016-9-16 15:21:38 | 显示全部楼层
百度了一下SQL,但不得要领,楼主能简单介绍一下吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-9-18 07:57:58 | 显示全部楼层
这个不错,值得收藏
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

发表于 2016-9-27 09:30:05 | 显示全部楼层
建议加精  
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2018-2-22 16:01:28 | 显示全部楼层
堪称经典,不错
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 13:14 , Processed in 0.385321 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表