想知道为什么?(100分)

  • 主题发起人 主题发起人 zuoc
  • 开始时间 开始时间
Z

zuoc

Unregistered / Unconfirmed
GUEST, unregistred user!
服务器端:
Query.SQL.Add('select * tble where aa=:aa');
客户端子窗体中FormCreate:
ClientDataSet.Active:=false;
ClientDataSet.FetchParams;
ClientDataSet.Params.ParamByName('aa').AsString:='abc';
ClientDataSet.Active:=true;
客户端打开这个窗体执行这个查询没问题,但关闭后再打开报错:
Query:field 'aa' is of an unknown type
为什么??
 
如果动态给ClientDataSet参数,第二次运行ClientDataSet记录数为0时不报错,再次付参数ClientDataSet记录不为0时也正常,为什么第二次打开后只要ClientDataSet记录不为0就错??
 
字段名和变量名用一样地,不太好啊。
 
好象和变量名无关啊,补充Query的SQL是动态给的,如果把SQL写死在Query中就没问题
 
你用的是midas么
 
那你把服务器的provider设置成可以接受sql语句,然后从客户端发送查询语句。
 
要这样做的话。就不问这个问题了。
 
你试下ClientDataSet.Params.ParamByName('aa').AsString:='abc';改成:
ClientDataSet.Params[0].value:='abc';
以前我在开发两层的时候都遇到这么郁闷的问题,用上面就是报错,可一改用下面的旧好了!
 
'select * tble where aa='+QuotedStr(变量);
 
后退
顶部