gavvy 发表于 2013-1-13 15:19:28

这个问题我早就碰到了
你加我QQ我告诉你:271786483

gavvy 发表于 2013-1-13 15:20:17

看漏了一贴

革天明 发表于 2014-12-19 18:34:10

SWAYWOOD 发表于 2013-1-9 20:42 static/image/common/back.gif
自己搞定了,现在把我的经验分享给大家,相信大家都会遇到这种情况,只是你们暂时没有上WIN7X64位。
主要问 ...

XP系统,装有access 2010 ODBC中有*.mdb,*.accdb


同样是
(vlax-put-property      RecordSetObject
      "cursorType"
      ADOConstant-adOpenKeyset
)代码出错,显示错误: ActiveX 服务器返回错误: 无效的参数数目。


如果使用下面的代码,直接没有结果,使用注释掉的那句,还能返回,
(setq *ConnectionObject*
             (ADO_ConnectToDB
             (strcat
               ;;"Provider=MSDASQL;Driver={Microsoft Access Driver (*.mdb)};DBQ="
               "Provider=MSDASQL;Driver={Microsoft Access Driver (*.accdb)};DBQ="
               dbfile
             )
             "admin"
             "123456"
             )
      )

如果往下运行到(setq result (ADO_DoSQL *ConnectionObject* SQLStatement))这句就显示出错了,也是错误: ActiveX 服务器返回错误: 无效的参数数目。

然后往ADO_DoSQL函数中查找,到下面这句就错了。
(vlax-put-property      RecordSetObject
      "cursorType"
      ADOConstant-adOpenKeyset
)代码出错,显示错误: ActiveX 服务器返回错误: 无效的参数数目。


请指点一下如何才能正常访问access

张牙舞爪 发表于 2014-12-20 13:00:54

(setq dbfile "d:\\tt.MDB")
(setq conn(vlax-create-object "ADODB.Connection"))
(setq connstring (strcat "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" dbfile))
(vlax-invoke-method conn "open" connstring "" "" -1)

连接并打开MDB个人数据库

革天明 发表于 2014-12-20 16:52:57

Gu_xl 发表于 2012-11-28 11:44 static/image/common/back.gif
测试数据库:

(vlax-put-property
      RecordSetObject
      "cursorType"
      ADOConstant-adOpenKeyset
      )
(vlax-put-property
      RecordSetObject
      "LockType"
      ADOConstant-adLockOptimistic
      )
这两句显示的是一样的:错误: ActiveX 服务器返回错误: 无效的参数数目。
请问如何解决?
因为ADOConstant-adOpenKeyset和ADOConstant-adLockOptimistic在Vlisp编程器中未变色,相当于用户变量,但也没有见给它们赋值的句子,所以就出错了,请问如何更改?

革天明 发表于 2014-12-20 16:54:11

Gu_xl 发表于 2012-11-28 11:44 static/image/common/back.gif
测试数据库:

(vlax-put-property
      RecordSetObject
      "LockType"
      nil
      )
; 错误: ActiveX 服务器返回错误: 无效的参数数目。
_$ (vlax-put-property
      RecordSetObject
      "LockType"
      ""
      )
; 错误: 此类型的 LISP 值不能强制转换成 VARIANT:""

照上面的测试,显示那个值还不能是Nil和“”

cabinsummer 发表于 2016-5-9 09:54:32

SWAYWOOD 发表于 2013-1-9 20:42
自己搞定了,现在把我的经验分享给大家,相信大家都会遇到这种情况,只是你们暂时没有上WIN7X64位。
主要问 ...

我也遇到这样的问题,比你惨的是,我们公司根本不让装64位的Access驱动

dcl1214 发表于 2019-8-31 22:18:06

革天明 发表于 2014-12-20 16:54
(vlax-put-property
      RecordSetObject
      "LockType"


此问题我已经找到了解决办法了

革天明 发表于 2019-9-1 13:24:45

dcl1214 发表于 2019-8-31 22:18
此问题我已经找到了解决办法了

久远的问题了,现在不玩lisp了
页: 1 [2]
查看完整版本: 64位中怎么通过adodb.connection调用ACCESS数据库?