delphi 调用udl文件读写数据库连接信息

        一。udl文件关联程序是OLE   DB   CORE   SERVICE,所以双击会弹出DATA   LINK   PROPERTIES对话框,可以有记事本打开,

记录了数据库联接的相关信息。  IDataInitialize它是OLEDB单元提供的一个接口, 通过它可以创建读写数据库连接的初始信息到指定的UDL文件。

示例:

 

 

 

implementation
  
uses  oledb,ActiveX,ComObj;  //引入单元
{ $R *.dfm }

{  TForm1  }

procedure  TForm1.Btn1Click(Sender: TObject);
var
   fileName,serName:String;
begin
  fileName:
= ExtractFilepath((Application.ExeName)) + ' sql.UDL ' ;
 Init_ConnectionString(fileName,serName);
 mmo1.Lines.Add(serName);
 
// serName为:Provider = SQLOLEDB. 1 ;Integrated Security = SSPI;Persist Security Info = False;
 
// Initial Catalog = Northwind;Data Source = 34F6596280EA4B5\sql2000
 try
    Con1.Open;
    mmo1.Lines.Add(BoolToStr(Con1.Connected));   //-1
 except
   mmo1.Lines.Add('异常了');
   mmo1.Lines.Add(BoolToStr(Con1.Connected));  //0
 end;

end ;


procedure  TForm1.Init_ConnectionString(FileName:  string var  ConString:  string );  //ConString用了传址方式
var
  DataInit:IDataInitialize;                                       
// 定义接口
  fname,s:POleStr;
  tmp:widestring;
begin
  tmp:
=  filename;                                                 //注意必须经过widString转化,否则得不到值
  fname:
= POleStr(tmp);
  DataInit:
= CreateComobject(CLSID_DATALINKS)  as  IDataInitialize;   // 创建接口
  DataInit.LoadStringFromStorage(fname,s);
  mmo1.Lines.Add(s);
  ConString:
= s; 
  DataInit:
= nil ;                                                   // 释放
end ;

end .

 

你可能感兴趣的:(Delphi)