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.