明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2162|回复: 2

求助:lisp连接sql进行查询

[复制链接]
发表于 2012-2-3 22:48:25 | 显示全部楼层 |阅读模式
向各位高手求助!
最近要写一段代码,用于在CAD里对sql的数据库进行查询。
以前从来没接触过sql,也只会AutoLisp,对VisualLisp的东西一无所知,所以一直很迷茫。前几天在明经上看到几年前明总写的,关于lisp代码连接ADO的。

看代码中的注释,会返回一个表。表的第一行是数据表的列名,如果查询出结果,后面会继续添加行,如果查询不出结果,就只有这个列表名的行。
我用这代码做了次测试,结果始终只有第一行列表名。同样的查询语句,我直接在sql的管理工具里进行查询,就是一切正常有结果的。

想请各位高手帮忙看看,这段代码是不是要做些什么调整。
我目前使用的CAD版本是2008,以后可能也还要用2012。windows系统是XP,以后可能要用win 7 x64。
另外,不知道是不是和msado15.dll的版本有关,这个文件版本是2.81.3012.0。

附上lsp文件,烦请帮忙看看,谢谢!


本帖子中包含更多资源

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

x
 楼主| 发表于 2012-2-6 20:36:56 | 显示全部楼层
没有人能给点建议吗
发表于 2015-9-14 20:38:20 | 显示全部楼层
本帖最后由 ggdlove 于 2015-9-14 20:39 编辑

看来楼主也为这个事情困扰,我也想简单的读取一下MDB文件中的一些数据。

这个文件我下载下来了,然后下载了一个《ADO帮助文件》,对着帮助文件,一条条的检查,发现了问题。

本着取之于明经,用之与明经的思想。我把这个问题记录下来,以方便和楼主及我一样需要的人来参考。



是用Connection对象的Execute方法的时候参数错误。下面来看看这个方法:

connection.Execute CommandText, RecordsAffected, Options

CommandText   String 值,包含要执行的 SQL 语句、表名称、存储过程、URL 或提供者特有的文本。
RecordsAffected   可选。Long 变量,提供者向其返回操作影响的记录数目。
Options   可选。Long 值,指示提供者计算 CommandText 参数的方式。可以是一个或者多个 CommandTypeEnum 或 ExecuteOptionEnum 值。

文件中写的是:
(setq rs (vlax-invoke-method conn "Execute" sql "" -1))

RecordsAffected - 应该是long型,这里写的""是string型的,所以出错。只要改写成如下即可:

(setq rs (vlax-invoke-method conn "Execute" sql nil -1))


PS:不知道怎么的,不能发图片和文件了。相关的结果没有能传上来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-9-29 04:41 , Processed in 0.167893 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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