PB中连接Access数据库的三种方法

 

方式一:
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='driver=Microsoft Access Driver (*.mdb);DBQ=c:\foodmart.mdb'"
CONNECT;
IF SQLCA.SQLCode <> 0 THEN
MessageBox("数据库连接失败","请与管理员联系。错误号:" + String(SQLCA.SQLCode) + "~r~n错误原因:" + SQLCA.SQLErrText)
RETURN

else
MessageBox("数据库连接成功","现在进入系统... ...")
end if

方式二:
SQLCA.DBMS = "OLE DB"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='C:\foodmart.mdb'"
CONNECT;

方式三:
建立DSN,通过ODBC连接。这个就不用多说了。

例如:
// Profile my_ass
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=my_ass'"


catalog tables could not be created and are not available for use 问题解决方法:

这种情况多见于从SQL server 转到 Access 数据库,用ODBC连接的情况
把sqlserver数据库里的五个‘pb’字母开头的数据表导入到access数据库里去,再连接就不提示了

关于动态注册ODBC数据源
关于动态注册Access数据源
//***********************************************
// 函数名: gf_setodbc_access
// 功能: 完成access数据源的注册功能
// 输入参数:
// as_database 数据库名
// (即Access数据库文件名字,不含扩展名)
// as_path 数据库文件所在的目录
// 返回值:
// true 表示自动配置成功
// false 表示自动配置失败
// 设计者: Adamswater
// 完成时间: 2005年6月
//***************************************************


boolean lb_rtn
string ls_root,ls_root_dsn,ls_root_Jet,ls_root_Engines
integer li_rtn
string ls_dsnname,ls_dbfullname,ls_driver,temp,ls_version
string ls_syspath
environment env

integer rtn
ls_syspath = Space( 40 )
//获得*作系统的目录
GetSystemDirectoryA(ls_syspath,60)
ls_driver = ls_syspath + "\odbcjt32.dll"
lb_rtn = true
ls_root = "HKEY_LOCAL_MACHINE\software\odbc\odbc.ini"
//数据源名字为:文件名字+“_DT”
ls_dsnname = as_database + "_DT"
ls_root_dsn = ls_root + "\" + ls_dsnname
ls_root_Engines = ls_root_dsn + "\" + "Engines"
ls_root_Jet = ls_root_Engines + "\" + "Jet"
ls_dbfullname = as_path + "\" + as_database + ".mdb"
//注册数据源的名字
li_rtn = registryset(ls_root,ls_dsnname,regstring!,"")
if li_rtn= - 1 then
return false
end if
//注册数据库名字
li_rtn = registryset(ls_root_dsn,"DBQ",regstring!,ls_dbfullname)
if li_rtn= - 1 then
return false
end if
//注册数据库驱动程序
li_rtn = registryset(ls_root_dsn,"Driver",regstring!,ls_driver)
if li_rtn= - 1 then
return false

连接ACCESS不能修改数据问题

打开数据窗口,选择菜单中rows,然后选择update properties
然后选中allow update 之后,在将 每个tab order 的顺序进行设置,从10开始
就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值