这样我们就可以通过动态生成UDL文件,然后连接ACCESS数据库,具体做法如下:
Integer li_FileNum
String ls_udl
//写入UDL
ls_udl = "[oledb]~r~nEverything after this line is an OLE DB initstring~r~n"
ls_udl+= "Provider=Microsoft.Jet.OLEDB.4.0User ID=AdminData Source=数据库路径Persist Security Info=FalseJet OLEDB:Database Password=密码"
f_writeFile("Connect.udl",ls_udl,"Unicode") //UDL 要求是UNICODE编码
// Profile msg
SQLCA.DBMS = "OLE DB"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATALINK='connect.udl'"
Connect
FileDelete("Connect.udl")
if sqlca.sqlcode=-1 then
messagebox('提示','数据库连接错误.~r~n'+sqlca.sqlerrtext)
end if
将一下文本另存为 f_writefile.srf,只有PB9及其以前的版本需要这样做,BP10之后可以直接使用PB的FileOpen来解决
$PBExportHeader$f_writefile.srf
$PBExportComments$写入到指定格式的文件中
global type f_writefile from function_object
end type
forward prototypes
global subroutine f_writefile (string as_file, string as_str, string as_typ)
end prototypes
global subroutine f_writefile (string as_file, string as_str, string as_typ)//====================================================================
// 事件: .f_writefile()
//--------------------------------------------------------------------
// 描述:写入到指定格式的文件中,用于PB9生成UNICODE\UTF8文件
//--------------------------------------------------------------------
// 参数:
// value string as_file 文件名
// value string as_str 要写入的内容
// value string as_typ 文件编码类型 "UNICODE" / "UTF-8"
//--------------------------------------------------------------------
// 返回: (none)
//--------------------------------------------------------------------
// 作者: topany 日期: 2008年06月30日
//--------------------------------------------------------------------
// 版权: Topany
//--------------------------------------------------------------------
// 修改历史:
//
//====================================================================
OLEObject ole_ADOStream
ole_ADOStream = Create OLEObject
ole_ADOStream.ConnectToNewObject("ADODB.Stream")
ole_ADOStream.Open()
ole_ADOStream.Position = 0 //Position为0才能设置Charset
ole_ADOStream.Type = 2 //文本数据 1-adTypeBinary 2-adTypeText
ole_ADOStream.Charset = as_typ
ole_ADOStream.WriteText(as_str)
ole_ADOStream.SaveToFile(as_file,2)
ole_ADOStream.Close()
Destroy ole_ADOStream
end subroutine
在powerbuilder软件界面,点击上面数据库图标。2
d出Database Profiles窗口,在此窗口内,双击图中标注ODBC Administrator项。
3
在d出的ODBC数据源管理器中点击右侧的添加按钮。
在d出的创建新数据源窗口中,点击最下方SQL Server Native Client 10.0项。
d出创建到SQL Server的新数据源窗口,输入任意名称、描述,服务器处输入(local),点击下一步。
在新的界面最上方“更改默认数据库为”前勾选,下方选择你的程序想要连接的数据库。点击下一步。
一直点击下一步直到如图界面,到此数据源的添加基本完成,点击下方测试数据源,提示成功后关闭此界面即可;如果不成功请从头再次 *** 作,注意每一个小细节。
上个步骤关闭窗口后,回到原来的ODBC数据源管理器窗口,可以看到列表上方出现了刚刚创建的数据源,关闭此窗口。
回到Database Profiles窗口,如图,点击ODB ODBC,然后点击右侧New按钮。
新d出Database Profile Setup-ODBC窗口,填写Profile Name,下拉列表选择对应Data Source项。(如果你的数据库没有设置登录密码,则下方的user id和password项不需填写)
中间穿插一步,如图,在这个窗口上方点击Preview标签,复制下方的一段代码,留待后面使用。
点击OK,关闭此窗口。
点击新添加的那一项,如图,点击右侧Connect按钮,然后数据库小图标会出现一个绿色小勾。到这里,连接数据库的所有配置已经完成,只需在程序中添加连接数据库的代码就可以了。
如图,我在我的一个程序窗口的open事件中添加了刚刚复制的那段代码,这样这个窗口在打开时就可以直接连上数据库了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)