本帖最后由 dcl1214 于 2025-12-3 19:31 编辑

  1. (setq db_path "C:\\雨污水管线数据库.mdb")
  2. (setq DBConnection (vl-catch-all-apply 'vlax-create-object(list "adodb.connection")))
  3.           ;创建并返回ADO Connection对象  ①
  4. (setq RSObject (vl-catch-all-apply 'vlax-create-object(list "adodb.recordset")))
  5.           ;创建并返回ADO RecordSet对象  adok-adConnectUnspecified ②

  6. (setq connstring
  7.        (strcat
  8.          ;"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";32位的cad调用方法
  9.          "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=";64位的cad调用方法
  10.          db_path
  11.        )
  12. )          ;设置数据库连接字符串 ③
  13. (setq open-zt (vl-catch-all-apply
  14.     (function (lambda ()
  15.           (vlax-invoke-method
  16.             DBConnection   "open"
  17.             connstring   ""
  18.             ""
  19.             adok-adConnectUnspecified
  20.            )
  21.         )
  22.     )
  23.         )        ;如果数据库已经连接成功了就跳过去,执行下面代码 ④
  24. )
  25. (if (vl-catch-all-error-p open-zt)  ;若果上面开启数据库失败了
  26.   (alert (vl-catch-all-error-message open-zt)) ;弹出错误提示
  27. )
  28. (setq sql "select * from 点表")
  29. (setq rs (vl-catch-all-apply
  30.      'vlax-invoke-method
  31.      (list DBConnection "Execute" sql nil -1)
  32.    )
  33. )
  34.           ;执行sql语句查询 ⑤
  35. (if (vl-catch-all-error-p rs)    ;若果上面开启数据库失败了
  36.   (alert (vl-catch-all-error-message rs)) ;弹出错误提示
  37. )
  38. (vl-catch-all-apply 'vlax-release-object (list rs))
  39. (vl-catch-all-apply 'vlax-release-object (list RSObject))
  40.           ;释放记录集对象 ⑥
  41. (vl-catch-all-apply
  42.   'vlax-invoke-method
  43.   (list DBConnection "close")
  44. )          ;关闭数据库连接对象 ⑦

  45. (vl-catch-all-apply
  46.   'vlax-release-object
  47.   (list DBConnection)
  48. )          ;释放连接对象 ⑧
  49. (setq DBConnection
  50.        nil
  51.       RSObject nil
  52. )          ;变量做空 ⑨
  53. (gc)          ;释放内存 ⑩


网友答: 楼主,这种程序是子程序吗,还是示范代码
  • 上一篇:图框属性编号源码和经验分享
  • 下一篇:没有了