1. 连接SQL sever2000 数据库时,如果数据库表中的数据有为text的类型,则执行不了查询。
所写语句如下:
query1.sql.text = 'select * from tableName';
query1.Active := true;
query1.first;
如果没有为text类型的字段就没有问题。2.
取查询后结果集中每一条结果的字符串形式
query1.fields[0].asstring,通过循环可以按顺序取出,每次取一条
但是把str := query1.fields[0].asstring 后,就不能按顺序取出结果了,每次都只输出第一条记录,出错代码如下:
query1.sql.text = 'select * from tableName';
query1.Active := true;
query1.first;
str := query1.fields[0].asstring;
for i := 0 to query1.RecordCount-1  do
begin
showmessage(str);
end;
如果把字符串赋值的代码放入循环内,即:
query1.sql.text = 'select * from tableName';
query1.Active := true;
query1.first;
str := query1.fields[0].asstring;
for i := 0 to query1.RecordCount-1  do
begin
str := query1.fields[0].asstring;
showmessage(str);
end;
则循环一次输出第一条,循环第二次的时候输出第一条和第二条,到第query1.RecordCount-1次时才从第一条开始到最后一条把所有的结果输出来,

解决方案 »

  1.   

    query1.sql.text = 'select * from tableName';
    query1.Active := true;
    query1.first;
    while not query1.Eof  do
    begin
      str := query1.fields[0].asstring;
      showmessage(str);
      Next;
    end;查询不用Select * ,取需要的字段就可以了 Select 字段名 From TableName
      

  2.   

    上面的代码end前有一句是query1.next,我忘了粘上来了,
      

  3.   

    谢谢 一楼的,我的实际程序select 语句只选了自己想要的字段,
      

  4.   

    第二个问题解决了,只剩下第一个问题了,现在还不会用ado,哎,这二周才用delphi写程序,一会看看怎么用的,