首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi ADOQUERY 动态连接数据库 异常 高手帮忙 多谢

2012-02-06 
DelphiADOQUERY 动态连接数据库 错误 高手帮忙 谢谢function getsqlserver():string//获取服务器varifile

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

热点排行