Delphi ADOQUERY 动态连接数据库 错误 高手帮忙 谢谢
function getsqlserver():string;//获取服务器
var
ifile:TInifile;
begin
if fileexists('c:\windows\sqlset.ini') then
begin
ifile:=Tinifile.create('c:\windows\sqlset.ini') ;
try
result:=ifile.readstring('SQL','str','');
ifile.Free;
except
showmessage('请配置服务器!');
form1.Close;
end;
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
adoquery1.Connection.Close;
adoquery1.ConnectionString:='Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=MK_DB;Data Source='+getsqlserver;
adoquery1.Connection.Open;
end;
----------------------------------------------------------------------
ini文件内容
[SQL]
str:=PC-20090909NFKU
-------------------------------------------
为什么编译有错误 高手帮忙
[解决办法]
查询你的showmessage(adoquery1.ConnectionString)看看,是不是连接字符串有问题?估计是你的连接字符串有问题。
[解决办法]
function getsqlserver():string;//获取服务器
var
ifile:TInifile;
begin
if fileexists('c:\windows\sqlset.ini') then
begin
ifile:=Tinifile.create('c:\windows\sqlset.ini') ;
try
result:=ifile.readstring('SQL','str','');
ifile.Free;
except
showmessage('请配置服务器!');
form1.Close;
end;
end;
end;
上面的代码内存泄露:try-Except里面如果真有异常,那么这个iFile是没有机会释放了。
procedure TForm2.FormCreate(Sender: TObject);
begin
adoquery1.Connection.Close;
adoquery1.ConnectionString:='Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=MK_DB;Data Source='+getsqlserver;
adoquery1.Connection.Open;
end;
字符串在''之间是需要加''''的,貌似User ID = ''sa'',你细细看下错误提示,这个应该会提示出来的
[解决办法]
form1.Close;
form1是在哪儿?
[解决办法]
你的应该是form2吧
procedure TForm2.FormCreate(Sender: TObject);
把form1改为form2