为什么用动态连接数据库到sql 2000,在本机可以使用,但在局域网的其它机子上不行,有谁帮帮我吧?(100分)

  • 主题发起人 主题发起人 jxsrhuangg
  • 开始时间 开始时间
J

jxsrhuangg

Unregistered / Unconfirmed
GUEST, unregistred user!
我原来把adoconnection.connect:=true;可以实现局域网多机连接数据库sql 2000,但为了实现动态连接,我用读取inifile文件内容来设置adoconnection.connectstring的属性,却只能在本机上使用,不能在其它机子上使用,出错提示:连接字符串属性无效。部份代码如下:
var inifile:tinifile;
str,str_temp:string;
str1,str2,str3:string;
begin
adoconnection1.Connected:=false;
adoconnection1.ConnectionString:='';
adoconnection1.KeepConnection:=false;
inifile:=tinifile.Create(extractfilepath(paramstr(0))+'ldj.ini');
str1:=inifile.ReadString('服务器设置','用户名','');
str2:=inifile.ReadString('服务器设置','数据库名','');
str3:=inifile.ReadString('服务器设置','服务器名','');
str:='Provider=SQLOLEDB.1;Password=hgsybj;persist Security info=true;';
str_temp:='User ID='+str1+';'+'initial catalog='+str2+';'+'datasource='+str3+';';
str:=str+str_temp;
//showmessage(str);

if ADOConnection1.Connected=false then
begin
ADOConnection1.ConnectionString:=str;
//showmessage(adoconnection1.ConnectionString);
ADOConnection1.Open;
adoconnection1.KeepConnection:=true;
end
else begin
showmessage('登录失败,请正确设置系统');
adoconnection1.Destroy;
end;
inifile.Free;
 
1.首先你确定你的SQL连接方式有没设置错误(用TCP/IP,不要用命名管道),
2.在设计时用ADO去连接其它机器上的数据库看是否能连接上;
 
安装SQL 客户端工具试试
 
如果在设计时都不能连接上的,再提出错误现象;
如果在设计时能连接上的,那你跟踪调试一下看ConnectionString有没错误。
 
網絡問題..查一下tcp/ip
 
先在客户端静态地进行一下调试不就可以了吗。猜是解决问题的思路,不是解决问题的办法。
 
第一,不是网络问题,因为我用原来的静态连接,可以实现多机访问;
第二,我用了ado连接过局域网内的其它数据库可以实现;
第三,我跟踪了本机上的(开发机子上)connectionstring的属性,正常。
 
please help me!
 
我感觉connectionstring少一些东西
你再仔细比较一下静态connectionstring与你自动生成的connectionstring的区别!
 
哪个机器出问题,就到哪个机器上去装了DELPHI调试。
看看ConnectionString到底出来的是什么不就得了??[8D]
 
Provider=SQLOLEDB.1;Persist Security Info=False;Data Source=数据库服务器名称;Initial Catalog=数据库名称;User ID=sa

这个肯定行,我每天都在用着
 
这种问题多调试一下就行,其实更本就不是问题,缺乏耐心
 
有没有到出问题的机器上去“装DELPHI调试”?
 
出错提示:连接字符串属性无效。
============================
那是因为你的运行程序的客户端没有安装sqloledb驱动,如果使用sqlserver连接方式,请先在客户端安装sql server 客户端工具,否则请使用windows 安全登录连接服务器数据库
 
如果真的不是ConnectionString有问题,
就是客户端的机器需要安装 MDAC 组件。
可以去免费下载最新的 MDAC 组件再试试看。
 
如果客户机是win98系统则一定要装MDAC2.8组件.
最好的办法是在出问题的客户机上装delphi调试
 
to jxsrhuangg
我把你的代码复制下来试了一下,发现+'datasource='+str3+';';
应为+'data source='+str3+';';,要认真对待自己的问题。
 
你好,
在我的网站(程序源码)里面有关于动态连接数据库的源程序。
你有空可以去看看。
网址如下:
http://BetterMicrosoft.icpcn.com
我有三年的Delphi工作经验了,这个问题已经解决几年了。
有问题一起交流。
 
多人接受,本人十分感谢
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
951
SUNSTONE的Delphi笔记
S
后退
顶部