adoquery与BDE中的query应用区别解决方案

adoquery与BDE中的query应用区别
我要运行sp_pkeys @table_name= tname以找该表的主键
用adoquery可以用,但用query提示“field 'COLUMN_NAME' not found",用法如下:
query1.Close;
  query1.SQL.Clear;
  query1.SQL.Add('sp_pkeys @table_name= '+tname);
  query1.Open();
   
  query1.First;
  while not query1.Eof do
  begin
  colKeyList.Add(Query1.FieldbyName('COLUMN_NAME').value);

  Query1.Next;
  end;
如果把query1换成adoquery1就没问题,不明白是什么问题,知道的指导下!!



------解决方案--------------------
最好不要使用BDE,BDE的BUG多,而且不支持Unicode,例如當你要查詢SQL Server中的NVARCHAR類型字段時,使用BDE就沒有辦法。
------解决方案--------------------
没有问题!
procedure TForm1.Button1Click(Sender: TObject);
begin
with Query1, SQL do
begin
Close;
Add('sp_pkeys Goods');
Open;
while not eof do
begin
ListBox1.Items.Add(FieldByName('column_name').AsString);
Next;
end;
Close;
end;
end;
------解决方案--------------------
是没有问题的,或许你的'COLUMN_NAME'没有包含在query中,注意双击TQuery ,把字段都加近来.
------解决方案--------------------
BDE不是BUG太多,boblaw 说那个问题并不存在,不过如果nvarchar字段的长度为10,那么在DBEdit等控件里只能输入5位,所以设计数据库都要加长一倍,BDE的速度还比ADO快,只不过BDE已经处于维护期,也就是不会再有新版本了,放弃它吧,可以用ADO或者DBExpress,后者完全支持Unicode,但还不是很完善。