Delphi 如何通过配置ini文件去连接SQL?

Delphi 如何通过配置ini文件去连接SQL Delphi / Windows SDK/API

http://www.delphi2007.net/DelphiDB/html/delphi_20061221172852177.html

请问大家 Delphi如何通过配置ini文件去连接SQL?

大家有没相应的例子或代码?

由于是第一次接触这方面的操作,所以希望大家帮个忙.

这个首先有一个配置好的INI文件,然后在连接数据库之前读出INI文件的配置信息来连接SQL就可以了

首先你要会对INI进行处理,INI文件读写DELPHI中有一个类TIniFile,利用这个类型你就可以方便地创建及读写INI文件了.

////ini

[ServerInfo]

ServerIP=.

SQLDBName=aaaa

SQLUserID=sa

SQLPwd=sa

/////////////

var

FileName:string;

begin

FileName:=ExtractFilePath( application.ExeName)+'resource\conf.ini';

with TInifile.Create(Filename) do

begin

ServerIP:=ReadString('ServerInfo','ServerIP','');

SQLDBName:=ReadString('ServerInfo','SQLDBName','');

SQLUserName:=ReadString('ServerInfo','SQLUserID','');

SQLPwd:=ReadString('ServerInfo','SQLPwd','');

Destroy;

end;

///////////

ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+

SQLPwd+

';Persist Security Info=True;'+

'User ID='+

SQLUserName+

';Initial Catalog='+

SQLDBName+

';Data Source='+

ServerIP;

三楼的基本差不多了,不过,密码最好进行加密!这种多的是,你可以随便找的。

谢谢大家的帮忙!

三楼正解

密码要进行加密.

我找了一些关于密码加密的例子,看后总觉得有些模糊,

请问朋友们,可不可以给些相应的详细些的例子给我看看啊?

毕竟头一次接触这样的例子,还是不太明白.

三楼的ADOConnection1.ConnectionString 的这个是怎么配置的啊,我在编译的时候老是说这里错误,未定义

配置的问题搞定了,谢谢大家!

但关于加密的问题还是希望大家能给我指导一下.

我是这样想的: 先定义两个字符串key和str 作为明钥和密钥.str是key倒过来的对应的字符串.

关于对应的加密,解密代码怎么写啊?我想了这么久,还是没弄会.

加密后再如何应用到三楼的代码中去啊,希望大家指点一下,我实在弄不好了.

[039D2D4968B58091]

6294E987F260513A=93F7BB025CD2ECE209FB77C6868074E3

16CC3532BB7A98DF=198E4BB5584F94BF

E7EBACCB860DAAFE=198E4BB5584F94BF

13AE07A60EF35373=0AB3345601A7728A

这是我的配置

[039D2D4968B58091]

6294E987F260513A=93F7BB025CD2ECE209FB77C6868074E3 //服务器

16CC3532BB7A98DF=198E4BB5584F94BF //数据库名

E7EBACCB860DAAFE=198E4BB5584F94BF //用户

13AE07A60EF35373=0AB3345601A7728A //密码

可不可以给个具体的例子或算法给我啊

加密你可一左移右移什么的来实现,加密算法用别人的你放心么?????

我是用来参考啊,我现在是不知道如何着手

//db_con.ini 这是你的配置文件

[ServerInfo]

ServerIP=.

SQLDBName=aaaa

SQLUserID=sa

SQLPwd=sa

//这是你的数据库连接单元文件中有关数据库连接函数

function Get_Db_Con_Str(FileName:String):String;

var

ServerIP,SQLDBName,SQLUserName,SQLPwd:string;

begin

Result := '';

with TInifile.Create(Filename) do

begin

try

ServerIP:=ReadString('ServerInfo','ServerIP','');

SQLDBName:=ReadString('ServerInfo','SQLDBName','');

SQLUserName:=ReadString('ServerInfo','SQLUserID','');

SQLPwd:=ReadString('ServerInfo','SQLPwd','');

finally

Free;

end;

Result := 'Provider=SQLOLEDB.1;Password='+SQLPwd+';Persist Security Info=True;User ;Initial Catalog='+SQLDBName+';Data Source='+ServerIP;

end;

//使用

var

Ini_FileName:String;

//.....

Ini_FileName:=ExtractFilePath( application.ExeName)+'db_con.ini';

if not FileExists(Ini_FileName) then

begin

ShowMessage('数据库连接配置文件不存在!');

Application.Terimate;

end;

with ADOConnection1 do

Connection := False;

ConnectionString:=Get_Db_Con_Str(Ini_FileName);

try

Connection := True;

//.....

except

ShowMessage('数据库连接失败!请检查配置文件:'+Ini_FileName);

//....

end;

end;

给你一个简单的:

procedure TFrmSrv.BtnSaveClick(Sender: TObject);

var I:integer;

begin

Pwd:=EdtPwd.Text;

for I:=1 to length(pwd) do

begin

pwd[i]:=chr(ord(pwd[i])xor 4);

end;

myinifile:=Tinifile.Create(ExtractFilePath(paramstr(0))+'\setup.ini');

myinifile.writestring('Setup','Data_Source',EdtSrv.text);

myinifile.writestring('Setup','Initial_Catalog',EdtDB.text);

myinifile.writestring('Setup','User_ID',EdtUser.text);

myinifile.writestring('Setup','Password',Pwd);

myinifile.Free;

end;

end;

象上面的这样子保存和读取都是一样的,取的时候再进行一次就行了。ok?

哈,能直接用了