注册 登录
编程论坛 Delphi论坛

关于Delphi7用ini文件连接数据库

A号痞子 发布于 2008-04-10 14:29, 2211 次点击
小弟正在做一个小系统的登录检验模块,
工作流程:在mainform的Oncreat事件中,程序会在与应用程序相同的目录中查找一个名字为dblink.ini的文件,从该文件中取出
          adoconnection1的connectionstring属性的值进行连接的尝试。如果连接失败,则系统会提示建立数据库连接失败; 如果成功,则弹出权限检验窗口,提示进行登录。
定义单元级变量:
 mainform: Tmainform;
  vlogin:string;
  vloginname:string;
  Vloginstatus:string;
  myinifile:Tinifile;
同目录下的dblink.ini文件内容:
 ;database   link   information   file   
[dblinkstr]   
dbstring=Provider=MSDASQL.1;
password=;   
persist   security   info=true;
user  ID=sa;
data   source=colds;   

窗体onCreat事件的程序代码为:
procedure Tmainform.FormCreate(Sender: TObject);
var
filename:string;

begin
filename:=ExtractFilePath(paramstr(0))+'dblink.ini';
myinifile:=Tinifile.create(filename);
try
adoconnection1.Connected:=false;
adoconnection1.ConnectionString:=myinifile.readstring('part1','dbstring','www');
adoconnection1.Connected:=true;
except
showmessage(数据库连接失败,请检查dblink.ini文件中的连接信息的设置是否正确!');
application.Terminate;
end;

end;
问题1:
运行错误提示窗口:
Project Project1.exe exception class E0leException with message '无效的授权说明'。Process stopped .use step or Run to continue.
 点了‘OK’之后,运行出来结果为:数据库连接失败,请检查dblink.ini文件中的连接信息的设置是否正确!

这是什么原因造成的?

还有,参考书有一段话:
在使用INI文件进行连接之前,一定要先建立一个名字为colds的ODBC数据源.代码为:
;database   link   information   file   
[dblinkstr]   
dbstring=Provider=MSDASQL.1;
password=;   
persist   security   info=true;
user  ID=sa;
data   source=colds;   
问题2:
这个代码要写在哪里的?不是写入dblink.ini文件里的?
 我创建了一个名字为colds的ODBC数据源,但是没有设置什么东西,只是创建了放在那里。请问建立了数据源还需要对它进行什么操作吗?
 使用ini文件连接数据库还需要在窗体中间加什么组件吗?
1 回复
#2
makebest2008-04-10 22:52
你确保ConnectionString是正确的吗,先这样试一下:
adoconnection1.ConnectionString:='xxxxxxx';

另外,读取设置文件的地方也要改一下:
myinifile.readstring('dblinkstr','dbstring','');
1