以文本方式查看主题

-  蓝色快车PB俱乐部论坛  (http://pb.besoft.com.cnhttp://pb.besoft.com.cn/bbs/index.aspindex.asp)
--  PowerBuilder MIS编程  (http://pb.besoft.com.cnhttp://pb.besoft.com.cn/bbs/index.aspbbs.asp?boardid=1)
----  找得吐血急求:pb与ACCESS的连接  (http://pb.besoft.com.cnhttp://pb.besoft.com.cn/bbs/index.aspdispbbs.asp?boardid=1&rootid=3426&id=3433)


--  作者:小巧车
--  发布时间:2005/11/18 9:41:28

--  找得吐血急求:pb与ACCESS的连接
能告诉一下:在PB中直接写代码注册ODBC,并与ACCESS数据连接.
--  作者:andytang123
--  发布时间:2005/11/20 20:36:35

--  
[分享]关于动态注册ODBC数据源

1.关于动态注册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


">