dcl1214 发表于 2025-12-3 17:43:14

mdb数据库连接的最基本步骤

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


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

(setq connstring
       (strcat
         ;"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";32位的cad调用方法
         "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=";64位的cad调用方法
         db_path
       )
)          ;设置数据库连接字符串 ③
(setq open-zt (vl-catch-all-apply
    (function (lambda ()
          (vlax-invoke-method
            DBConnection   "open"
            connstring   ""
            ""
            adok-adConnectUnspecified
         )
      )
    )
      )      ;如果数据库已经连接成功了就跳过去,执行下面代码 ④
)
(if (vl-catch-all-error-p open-zt);若果上面开启数据库失败了
(alert (vl-catch-all-error-message open-zt)) ;弹出错误提示
)
(setq sql "select * from 点表")
(setq rs (vl-catch-all-apply
   'vlax-invoke-method
   (list DBConnection "Execute" sql nil -1)
   )
)
          ;执行sql语句查询 ⑤
(if (vl-catch-all-error-p rs)    ;若果上面开启数据库失败了
(alert (vl-catch-all-error-message rs)) ;弹出错误提示
)
(vl-catch-all-apply 'vlax-release-object (list rs))
(vl-catch-all-apply 'vlax-release-object (list RSObject))
          ;释放记录集对象 ⑥
(vl-catch-all-apply
'vlax-invoke-method
(list DBConnection "close")
)          ;关闭数据库连接对象 ⑦

(vl-catch-all-apply
'vlax-release-object
(list DBConnection)
)          ;释放连接对象 ⑧
(setq DBConnection
       nil
      RSObject nil
)          ;变量做空 ⑨
(gc)          ;释放内存 ⑩

tranque 发表于 7 天前

楼主,这种程序是子程序吗,还是示范代码
页: [1]
查看完整版本: mdb数据库连接的最基本步骤