为何Connected后,ConnectionString的赋值无效,又恢复到初值 (100分)

  • 主题发起人 主题发起人 youngyu
  • 开始时间 开始时间
Y

youngyu

Unregistered / Unconfirmed
GUEST, unregistred user!
[red]ADOConnectionDpt.ConnectionString已改变,
但以下:
with FormXs.ADOQueryDpt do
begin
Close;
sql.clear;
sql.add('select gsm.* from gsm where class="2"');
open;
end;

查询的结果改变不了,如何解决。

。[/red]

我查到了部分原因,原来是Connected后,ConnectionString又恢复到初值:

showmessage(FormXs.ADOConnectionDpt.ConnectionString+' 2');
FormXs.ADOConnectionDpt.Connected:=True;
showmessage(FormXs.ADOConnectionDpt.ConnectionString+' 21');

Connected后,ConnectionString又恢复到初值,也就是说我对ConnectionString的赋值在Connected后无效。
什么原因。谢谢.

 
你还应当重设它的Connection属性:
ADOQueryDpt.Connection:=nil;
ADOQueryDpt.Connection:=AdoConnectionDpt;
 
首先要確定ADOQueryDpt和你新設的ADOConnection已經連接上,然後;
with ADOQueryDpt do
begin
Close;
sql.clear;
sql.Text:='select * from gsm where class='+''''+'2'+'''';
open;
end;
 
TO HunterTeam,谢谢您的回答。
我查到了一部分原因:

showmessage(FormXs.ADOConnectionDpt.ConnectionString+' 2');
FormXs.ADOConnectionDpt.Connected:=True;
showmessage(FormXs.ADOConnectionDpt.ConnectionString+' 21');

Connected后,ConnectionString又恢复到初值,也就是说我对ConnectionString的赋值在Connected后无效。
什么原因。谢谢.
 
connected:=false 后再赋值
 
To jsxjd:
showmessage(FormXs.ADOConnectionDpt.ConnectionString+' 2'); //显示赋值
FormXs.ADOConnectionDpt.Connected:=True;
showmessage(FormXs.ADOConnectionDpt.ConnectionString+' 21'); //赋值已变为初值

在此前已设定FormXs.ADOConnectionDpt.Connected:=False;

 
先:
FormXs.ADOConnectionDpt.Connected:=False;
FormXs.ADOConnectionDpt.ConnectionString:= '...................';
然后再
showmessage(FormXs.ADOConnectionDpt.ConnectionString+' 2'); //显示赋值
FormXs.ADOConnectionDpt.Connected:=True;
showmessage(FormXs.ADOConnectionDpt.ConnectionString+' 21'); //赋值已变为初值
试试.
 
我的经验是,不管如何,ConnectionString属性好像都不太可靠,最好在open之前
保存在变量里面,重新赋值的时候从变量里面取值。
 
TO DEN:
ConnectionString赋值前已有以下一句:
FormXs.ADOConnectionDpt.Connected:=False;
第一个 showmessage 表明 赋值成功;
第二个 showmessage 表明 Connected后赋值已变为初值.
到底是哪个设置有问题。
谢谢。
 
天哪,我终于找到问题的答案了。原来我在ADOConnectionDptBeforeConnect设定了ConnectionString.

谢谢各位
 
后退
顶部