PB动态连接access

PB 专栏收录该内容
15 篇文章 0 订阅

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.csdn.net/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中无法加入包含路径的数据库名,有点遗憾。


  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值