dcl1214 发表于 2020-12-29 13:14:47

lisp通过调用arx实现sqlite数据库的操作方法

sqlite是一个非常强大的数据库单文件,lisp通过读写sqlite可以让lisp的运行效率提升300%--600%不等,由于很多朋友不知道如何以最简单的方法快速入门,在此,我整理相关方法说明分享给大家

附件是2007cad的专用arx,我提供从2007--2020的所有版本arx,如果有需要可以私聊我


(SETQ DB "C:\\Changli_harness_software\\SERVER\\ZXCAD.DB")
(DSQL_OPEN DB)                                ;开启数据库
(DSQL_QUERY
DB
"SELECT * FROM 连接器 where `编码` like '%28208%';"
)                                        ;矩阵模式返回
(DSQL_ASSOCQUERY
DB
"SELECT * FROM 连接器 where `编码` like '%28208%';"
)                                        ;点表模式返回

(DSQL_DML
DB
"insert into 连接器 (`名称`,`编码`,`供方编码`,`供应商`,`规格`,`间距`,`孔位数`)VALUES('连接器','282080-1a','','秦始皇','五大三粗','心广体胖','有眼睛和鼻子')"
)                                        ;往数据库写入数据
(DSQL_DML
DB
"create table 秦始皇(No int, Num1 int, Num2 float, Name char(64));"
)                                        ;往数据库添加一个新的表单

(DSQL_SCALAR DB "select count(*) from 连接器;")
                                        ;查询指定表单里面有多少条数据
(DSQL_SCALARSTR DB "select count(*) from 连接器;")
                                        ;以字串的返回模式查询数据库指定表单有多少条数据
(progn
(setq I 0)
(DSQL_DML
    DB
    "create table Test2(No int, Num1 int, Num2 float, Name char(64));"
)
(DSQL_DML DB "begin transaction;")        ;开始
(DSQL_CMPSTMT DB "insert into Test2 values (?, ?, ?, ?);") ;事务
(REPEAT 100
    (DSQL_STMTBIND (SETQ I (1+ I)) 87 12.012 "有你真好!")
)
(DSQL_DML DB "commit transaction;")        ;事务提交
(DSQL_STMTFNL)                        ;清除编译
)
                                        ;事务法提交数据(速度很快)


(DSQL_LASTERR)                                ;查看错误

(DSQL_CLOSEALL t)                        ;关闭所有数据库链接,传入T清除缓存

(DSQL_VER)                                ;版本号
(DSQL_SQLITEVER)                        ;已经开启的sqlite数据库版本号

(DSQL_PRINTF "-%X-" 16777215)                ;似乎用的很少
(DSQL_PRINTFX "(%d,%X)" 16777215)        ;似乎用的很少
(DSQL_GETFORMAT 1 3.14 "Hello")                ;DSQL_GETFORMAT函数主要是构建DSQL_PRINTF函数需要的字串
(DSQL_GETFORMATX (ENTGET (CAR (ENTSEL))))
                                        ;DSQL_GETFORMATX函数主要是构建DSQL_PRINTFX函数需要的字串
(DSQL_LOADEXT "c:\\MySQLite.ext")        ;扩展文件,没有用过
(DSQL_DUMPERR)                                ;列出所有错误
(DSQL_KEYWORDS)                                ;列出sqlite数据库支持了哪些函数
(DSQL_FUNCLIST)                                ;本人提供的arx支持了哪些函数




huangpc27 发表于 2020-12-29 14:51:02

好资料,非常感谢!

老仓测绘上班记 发表于 2021-1-6 17:14:30

好资料,非常感谢

xx69as 发表于 2021-3-14 11:31:03

我需要,想研究哈,怎么联系你,我邮箱10902926@QQ.COM

dcl1214 发表于 2021-3-19 09:51:52

xx69as 发表于 2021-3-14 11:31
我需要,想研究哈,怎么联系你,我邮箱

发你邮箱了

收到法国大使馆 发表于 2021-6-16 10:56:03

您好!杜总,最近也在看sqlite希望分享一下!邮箱52616493@qq.com

279491611 发表于 2021-6-16 20:40:02

{:1_23:}感谢分享,学习一下怎么提高lisp运行效率!

dcl1214 发表于 2021-6-17 22:36:54

收到法国大使馆 发表于 2021-6-16 10:56
您好!杜总,最近也在看sqlite希望分享一下!邮箱

已经发送到您的邮箱了,建议看go的帖子,arx版本 太多了

csy0415 发表于 2021-7-17 16:31:32

您好!最近也在研究sqlite希望分享一下!邮箱394098832@qq.com

zteykmgscqh 发表于 2021-7-25 11:31:19

好东西,先收藏一下,以后有机会再研究{:1_1:}

yingwuluo 发表于 2021-9-9 17:15:19

好!最近也在研究sqlite希望分享一下!邮箱147747301@qq.com

dcl1214 发表于 2024-1-15 10:46:25

csy0415 发表于 2021-7-17 16:31
您好!最近也在研究sqlite希望分享一下!邮箱

已经发您邮箱了

dcl1214 发表于 2024-1-15 10:49:30

yingwuluo 发表于 2021-9-9 17:15
好!最近也在研究sqlite希望分享一下!邮箱

已经发送到您邮箱了

mengxiehua 发表于 2024-3-6 21:18:59

可以发我一份吗?邮箱123534190@qq.com。
(DSQL_DMLDB   "insert into ……这个我试了不成功。      

happyending 发表于 2025-10-2 09:09:35

这个必须学习学习,感谢分享。
页: [1] 2
查看完整版本: lisp通过调用arx实现sqlite数据库的操作方法