springsky 发表于 2003-1-12 23:15:00

autolisp 与数据库连接

不知道,那位大虾指导我autolisp与数据库连接能不能行。

秋枫 发表于 2003-1-13 09:04:00

使用vlisp可以利用ado接口连接。具体可以参考相关的书籍。相关函数vlax-create-obj

使用vlisp可以利用ado接口连接。具体可以参考相关的书籍。相关函数vlax-create-object

mccad 发表于 2003-1-13 21:11:00

如内...

本帖最后由 mccad 于 2003-1-13 21:11:52 编辑

通过类型库初始化ADO接口方法:

(defun DbInitADO ( / ADO_DLLPath)
(if (null adom-Append)
    (progn

      ;; 尽管你可以把绝对路径输入到这里,但利用系统查找到的系统
      ;; 文件夹将会更加合理,可以避免不必要的错误。

      (setq ADO_DLLPath
      (strcat (getenv "systemdrive")
      "\\Program Files\\Common Files\\System\\Ado\\")
      )

      ;; 如果查找到类型库 ...

      (if (findfile (strcat ADO_DLLPath "msado15.dll"))

      ;; 将其输入

      (vlax-Import-Type-Library
          :tlb-filename   (strcat ADO_DLLPath "msado15.dll")
          :methods-prefix    "adom-"
          :properties-prefix "adop-"
          :constants-prefix"adok-"
      )
      ;; 找不到时,则通知操作者
      (alert (strcat "不能找到以下文件\n" ADO_DLLPath "msado15.dll"))
      )
    )
)
)


生成MS-Access 或 MS-SQL Server 数据库的连接字符串

;;;******************************************************************
;;; 使用ODBC(不需要DSN)连接MS-Access数据库
;;; 示例: (DbConnect_MSAccess1 "d:/dbfiles/products.mdb")
;;;******************************************************************

(defun DbConnect_MSAccess1 (dbFile)
(strcat
    "Provider=MSDASQL;"
    "Driver={Microsoft Access Driver (*.mdb)};"
    "DBQ=" dbFile
)
)

;;;******************************************************************
;;; 使用JET 3.51连接MS-Access数据库
;;; 示例: (DbConnect_MSAccess2 "d:/dbfiles/products.mdb")
;;;******************************************************************

(defun DbConnect_MSAccess2 (dbFile)
(strcat
    "Provider=Microsoft.Jet.OLEDB.3.51;"
    "Data Source=" dbFile
)
)

;;;******************************************************************
;;; 使用ODBC(不需要DSN)连接MS-SQL数据库
;;; 示例: (DbConnect_MSSQL1 "SQLSERVER1" "products" "sa" "")
;;;******************************************************************

(defun DbConnect_MSSQL1 (dbServer dbName dbUser dbPassword)
(strcat
    "Provider=SQLOLEDB;"
    "Driver={SQL Server};"
    "Server=" dbServer ";"
    "Database=" dbName ";"
    "UID=" dbUser ";"
    "PWD=" dbPassword
)
)

;;;******************************************************************
;;; 使用ODBC连接MS-SQL数据库w/o
;;; Ex. (DbConnect_MSSQL2 "SQLSERVER2" "pr_catalog1" "sa" "")
;;;******************************************************************

(defun DbConnect_MSSQL2 (dbServer dbCatalog dbUser dbPassword)
(strcat
    "Provider=SQLOLEDB;"
    "Data Source=" dbServer ";"
    "Initial Catalog=" dbCatalog ";"
    "User ID=" dbUser ";"
    "Password=" dbPassword
)
)

全文见二次开发栏目的最新更新文章。

龙龙仔 发表于 2003-1-14 12:37:00

我也给点资料…

springsky 发表于 2003-1-14 23:30:00

谢谢各位大虾,戴我研究研究。

但不知道具体的检索,更新,插入,删除怎样实现。
页: [1]
查看完整版本: autolisp 与数据库连接