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

来源:互联网 发布:兼职淘宝刷手会坐牢吗 编辑:程序博客网 时间:2024/06/09 15:19

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

原创粉丝点击