偶在DataModule1中加入Database1,手工设置如下:
Name:MainDB Alias:空 Driver Name: MSSQL
..
DATABASE NAME=power
SERVER NAME=myserver
USER NAME=sa
....
(密码为空)然后运行程序正常,Query1可以正常打开资料库POWER中的表格;但是如果我采用以下方法就不行,将Database1设置为defaults,然后在程序中读取参数配置,结果是Database1连接可以通过,但是Query1打开Database1中的Table时会报错"Table does not exist";如果Database1保持先前的设置,那么无论在程序中如何配置,都会连接到资料库POWER, Query1打开Table正常。
具体的过程如下:
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
Database1.connected:=False;
try
Database1.Params.values['DATABASENAME'] := 'power';
Database1.Params.values['SERVER NAME'] := 'myserver'
Database1.Params.values['USER NAME'] := 'sa';
Database1.Params.values['PASSWORD'] := '';
Database1.Connected := True;
except
halt;
end;
end;
Name:MainDB Alias:空 Driver Name: MSSQL
..
DATABASE NAME=power
SERVER NAME=myserver
USER NAME=sa
....
(密码为空)然后运行程序正常,Query1可以正常打开资料库POWER中的表格;但是如果我采用以下方法就不行,将Database1设置为defaults,然后在程序中读取参数配置,结果是Database1连接可以通过,但是Query1打开Database1中的Table时会报错"Table does not exist";如果Database1保持先前的设置,那么无论在程序中如何配置,都会连接到资料库POWER, Query1打开Table正常。
具体的过程如下:
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
Database1.connected:=False;
try
Database1.Params.values['DATABASENAME'] := 'power';
Database1.Params.values['SERVER NAME'] := 'myserver'
Database1.Params.values['USER NAME'] := 'sa';
Database1.Params.values['PASSWORD'] := '';
Database1.Connected := True;
except
halt;
end;
end;
Query1的SQL非常简单,如下
select * from aplus order by sz001
改成
Database1.params.add('DATABASENAME=power');
.....
database1.Params.Add('USER NAME=sa');
依次类推,就可以了