读书人

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

发布时间: 2012-02-09 18:22:27 作者: rapoo

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,但还不是很完善。

读书人网 >.NET

热点推荐