查询MS SQL数据库问题(50分)

  • 主题发起人 主题发起人 张强
  • 开始时间 开始时间

张强

Unregistered / Unconfirmed
GUEST, unregistred user!
用Dephi编程,访问MS SQL Server数据库,关于数据库的登陆配置文件为DATABASE.INI和PASWORD.INI,我想利用它们去查询SQL Server数据库,不知是不是应该使用Data Access中的Database控件,怎样用呢?我只会用Query和Table控件。
再此多谢了!
附:
DATABASE.INI的内容如下:
KEEPCONNECTION=1
DATABASE NAME=a
SERVER NAME=abc
USER NAME=my
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
BLOB EDIT LOGGING=FALSE
LANGDRIVER=CHINA
SQLQRYMODE=SERVER
SQLPASSTHRU MODE=NOT SHARED
DATE MODE=0
SCHEMA CACHE TIME=-1
MAX QUERY TIME=2000
TIMEOUT=3600
MAX ROWS=-1
BATCH COUNT=200
ENABLE SCHEMA CACHE=FALSE
SCHEMA CACHE DIR=
HOST NAME=mm
APPLICATION NAME=nn
NATIONAL LANG NAME=
ENABLE BCD=FALSE
TDS PACKET SIZE=4096
BLOBS TO CACHE=64
BLOB SIZE=32
 
使用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)+'Databse.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;


差不多了吧?


 
接受答案了.
 
后退
顶部