q.close;
q.sql.text:='select (datename(yy,getdate())+datename(mm,getdate())     +datename(dd,getdate())+datename(hh,getdate())
+datename(mi,getdate())+datename(ss,getdate()))';
   q.open;
   cardno:=q.fields[0].asstring;//提示错误:list index out of bounds(0)
各位老大怎么解决?

解决方案 »

  1.   

    参数给他赋值时应CLOSE
    赋值完后再OPEN
      

  2.   

    应该是:
    q.sql.text:='.......';
    q.close;
    q.open;
    cardno:=q.fields[0].asstring;
    但还是一样啊?
      

  3.   

    q.sql.text:='select (datename(yy,getdate())+datename(mm,getdate())     +datename(dd,getdate())+datename(hh,getdate())
    +datename(mi,getdate())+datename(ss,getdate()))';
    你的SQL语法错误了吧!
      

  4.   

    SQL错,showmessage(1.sql.text)看看
    应该是没有找到数据,才出错
      

  5.   

    q.close;
    q.sql.text:='select (datename(yy,getdate())+datename(mm,getdate())+datename(dd,getdate())+datename(hh,getdate())'
    +'+datename(mi,getdate())+datename(ss,getdate()))';
    q.open;
    cardno:=q.fields[0].asstring;//提示错误:list index out of bounds(0)
    你写的语句有问题.你用我改过的试下.
    还有cardno是什么数据类型?
      

  6.   

    这是我做的测试.结果是edit1.text:=2004023165432
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    q.close;
    q.sql.text:='select (datename(yy,getdate())+datename(mm,getdate())+datename(dd,getdate())+datename(hh,getdate())'
    +'+datename(mi,getdate())+datename(ss,getdate()))';
    showmessage(q.sql.text);
    q.open;
    edit1.Text:=q.fields[0].asstring;//提示错误:list index out of bounds(0)
    end;
      

  7.   

    我估计你没有向Parameters加参数