您的位置:首页 > 数据库

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

2012-02-16 10:16 489 查看
方式一:

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开始

就可以了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: