日本北海道冬天冷吗:谁知道pb用oledb怎么连有密码的access的数据库

来源:百度文库 编辑:高考问答 时间:2024/05/04 16:44:34
谁知道pb用oledb怎么连有密码的access的数据库

PB提供了一个DATA LINK 的接口使我们可以通过UDL文件来连接带有密码的ACCESS。
这样我们就可以通过动态生成UDL文件,然后连接ACCESS数据库,具体做法如下:
Integer li_FileNum
String ls_udl
//写入UDL
ls_udl = "[oledb]~r~n; Everything after this line is an OLE DB initstring~r~n"
ls_udl+= "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=数据库路径;Persist Security Info=False;Jet 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文件
//--------------------------------------------------------------------
// 参数:
// valuestringas_file 文件名
// valuestringas_str 要写入的内容
// valuestringas_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