PB动态连接access

博客给出了PB连接Access数据库的代码示例,包括使用ODBC和OLE DB的方式。同时记录了连接中出现的问题,如提示DBMS OLE DB不支持,解决办法有检查安装oledb连接接口、重新按自定义方式安装PB9等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

string ls_defaultdir,ls_dbq

//数据库所在路径
ls_defaultdir=GetCurrentDirectory()
ls_dbq=ls_defaultdir+'/test.mdb'

SQLCA.DBParm = "ConnectString='DSN=MS Access Database;UID=admin;PWD=;DefaultDir="+ls_defaultdir+";DBQ="+ls_dbq+";'"
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = True
connect using sqlca;

if sqlca.sqlcode<>0 then
 messagebox('err','sad'+sqlca.sqlerrtext)
else
 messagebox('..','not sad')
end if

补充:

原贴:http://community.youkuaiyun.com/Expert/topic/4245/4245506.xml?temp=.1162531

回复1:

代码例子:
SQLCA.DBMS = "OLE DB"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='d:/a.mdb'"
//SQLCA.LogPass = ""
//SQLCAa.LogId = ""

CONNECT USING SQLCA;

IF SQLCA.sqlcode = -1 THEN
 Messagebox('连接错误',SQLCA.sqlerrtext)
 halt close
END IF

回复2:

楼上的方法我试过(access95、access2000)都提示错误:

DBMS OLE DB is not supported in your current installation


我用的也是PB9。


但我用下面的语句可以,前提必须先建ODBC:


//数据库所在路径
string ls_dbq

ls_dbq= "d:/a.mdb"
SQLCA.DBParm = "ConnectString='DSN=MS Access Database;UID=;PWD=;DefaultDir=;DBQ="+ls_dbq+";'"
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = True
connect using sqlca;

if sqlca.sqlcode<>0 then
  messagebox('警告!','错误:'+sqlca.sqlerrtext)
end if

回复3:

你检查一下是否安装了oledb连接接口吧,我用上面代码可以连接ACCESS的. 如果你安装了,你打开database画板后可以看到有OLE DB项的. 如果没有安装,请用PB的安装盘再装一次

回复4:

我确实是按默认方式安装PB9的。我重新按自定义方式安装PB9就可以用了。但由于数据库路径太长,在DB Profile中无法加入包含路径的数据库名,有点遗憾。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值