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 ID='+SQLUserName+';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?
哈,能直接用了
|
请发表评论