张
张强
Unregistered / Unconfirmed
GUEST, unregistred user!
我是张强,非常感谢你对我上一篇问题的回答,我基本已经会用
Data Access中的Database控件了,只是还有一个地方不明白,拜托你继续帮助,好吗?问题如下:
1.我的database.ini文件是固定的,是一家软件公司开发的查询MS SQL SERVER 的dilphi 3软件的配置,我只是想利用它作一点周边的小程序,所以说我不能修改它,只能利用它。现在的问题是我的database.ini无头,即:没有[Database Setting]这句,直接就是内容,如下:
DATABASE NAME=a
SERVER NAME=abc
USER NAME=my
OPEN MODE=READ/WRITE
....
这样我就不知道 iniTempFile:=iniTempFile.ReadSectionValues ('Database Setting', dabase1.Params) ;这句该怎麽改,或者是用别的语句。请继续赐教。上一篇问题及您的解答附后。
2.我的Password是放在Password.ini文件中的,TYPE Password.ini显示的都是乱码,肯定是编译过的。这是怎麽编译出来的呢(比如密码是1234,随便教我一种编译方法可以吗?)?我在程序里又怎麽反编译,调用这个密码呢?
附:
*上一篇问题:用Dephi编程,访问MS SQL Server数据库,关于数据库的登陆配置文件为DATABASE.INI和PASWORD.INI,我想利用它们去查询SQL Server数据库,不知是不是应该使用Data Access中的Database控件,怎样用呢?我只会用Query和Table控件。
再此多谢了!
*解答:使用TDatabase控件,首先将一个TDatabase控件拖到Form上,鼠标左键双击该控件后会弹出
一个对话框,Name项随便填(最好起一个有意义的名字),Driver Name选
MSSQL,点Defaults,会出现一些类似你的ini的东东,研究一下相信你可以解决你的
问题了!将TQuery,Table的DatabaseName项指向刚才你输入的Name.
你的ini文件最好这样写,这样就更地道些:
DATABASE.INI的内容如下:
[Database Setting]
DATABASE NAME=a
SERVER NAME=abc
USER NAME=my
OPEN MODE=READ/WRITE
....
此项应和Defaults中项目一样,至于KEEPCONNECTION=1这些在单独处理好了!
干脆好人作到底给你一段代码好了,加入到你的Form的ONCreate事件中,得了:
var
iniTempFile : TiniFile;
begin
database1.Connected := false;
database1.DatabaseName := 'mydatabase';
iniTempFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Databs
e.ini');
iniTempFile.ReadSectionValues ('Database Setting', dabase1.Params) ;
//如果UserName ,password要特殊处理,
database1.Params.values['PASSWORD'] := 'ppppp'
database1.Params.values['USER NAME'] := 'sa'
iniTempFile.Free;
Query1.DatabaseName := database1.DatabaseName;
//确认数据库连接
Try
dbMain.Connected := true;
Except
End;
Data Access中的Database控件了,只是还有一个地方不明白,拜托你继续帮助,好吗?问题如下:
1.我的database.ini文件是固定的,是一家软件公司开发的查询MS SQL SERVER 的dilphi 3软件的配置,我只是想利用它作一点周边的小程序,所以说我不能修改它,只能利用它。现在的问题是我的database.ini无头,即:没有[Database Setting]这句,直接就是内容,如下:
DATABASE NAME=a
SERVER NAME=abc
USER NAME=my
OPEN MODE=READ/WRITE
....
这样我就不知道 iniTempFile:=iniTempFile.ReadSectionValues ('Database Setting', dabase1.Params) ;这句该怎麽改,或者是用别的语句。请继续赐教。上一篇问题及您的解答附后。
2.我的Password是放在Password.ini文件中的,TYPE Password.ini显示的都是乱码,肯定是编译过的。这是怎麽编译出来的呢(比如密码是1234,随便教我一种编译方法可以吗?)?我在程序里又怎麽反编译,调用这个密码呢?
附:
*上一篇问题:用Dephi编程,访问MS SQL Server数据库,关于数据库的登陆配置文件为DATABASE.INI和PASWORD.INI,我想利用它们去查询SQL Server数据库,不知是不是应该使用Data Access中的Database控件,怎样用呢?我只会用Query和Table控件。
再此多谢了!
*解答:使用TDatabase控件,首先将一个TDatabase控件拖到Form上,鼠标左键双击该控件后会弹出
一个对话框,Name项随便填(最好起一个有意义的名字),Driver Name选
MSSQL,点Defaults,会出现一些类似你的ini的东东,研究一下相信你可以解决你的
问题了!将TQuery,Table的DatabaseName项指向刚才你输入的Name.
你的ini文件最好这样写,这样就更地道些:
DATABASE.INI的内容如下:
[Database Setting]
DATABASE NAME=a
SERVER NAME=abc
USER NAME=my
OPEN MODE=READ/WRITE
....
此项应和Defaults中项目一样,至于KEEPCONNECTION=1这些在单独处理好了!
干脆好人作到底给你一段代码好了,加入到你的Form的ONCreate事件中,得了:
var
iniTempFile : TiniFile;
begin
database1.Connected := false;
database1.DatabaseName := 'mydatabase';
iniTempFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Databs
e.ini');
iniTempFile.ReadSectionValues ('Database Setting', dabase1.Params) ;
//如果UserName ,password要特殊处理,
database1.Params.values['PASSWORD'] := 'ppppp'
database1.Params.values['USER NAME'] := 'sa'
iniTempFile.Free;
Query1.DatabaseName := database1.DatabaseName;
//确认数据库连接
Try
dbMain.Connected := true;
Except
End;