如题

解决方案 »

  1.   

    var I: Inteter;for I := 0 to DataSet.Fields.Count - 1 do
    begin
      ShowMessage(DataSet.Fields[0].AsString);
    end;
      

  2.   

    学习
    TDataSet.GetCurrentRecord
    This function always returns False, indicating failure. TDataSet descendants override this method to retrieve the value of the current record. If Buffer is successfully filled with the value of the current record, GetCurrentRecord should return True.
    不行的话还是
    fieldbyname('字段1'),fieldbyname('字段2')吧
      

  3.   

    http://www.delphibbs.com/delphibbs/dispq.asp?lid=2775990
      

  4.   

    {
      table 中有三个字符型字段
      a1 10位
      a2 8位
      a3 6位
    }
    type
       TableRec=packed record
          a1:array[0..9] of char;
          a2:array[0..7] of char;
          a3:array[0..5] of char;
       end;procedure TForm1.Button1Click(Sender: TObject);
    var rec:TableRec;
    begin
      table1.open;
      if   table1.GetCurrentRecord(@rec) then
      begin
         edit1.text:=rec.a1;
         edit2.text:=rec.a2;
         edit3.text:=rec.a3;  end;end;
      

  5.   

    如果我用buffer:PChar;
    然后再getCurrentRecord(buffer);这样行吗?
      

  6.   

    可以,但必须为buffer分配table1.RecordSize个数空间
      

  7.   

    楼上帮个忙吗?贴一下代码,我的getcurrentRecord老是返回false
      

  8.   

    {
      table 中有三个字符型字段
      a1 10位
      a2 8位
      a3 6位
    }
    type
       pTableRec=^TableRec;
       TableRec=packed record
          a1:array[0..9] of char;
          a2:array[0..7] of char;
          a3:array[0..5] of char;
       end;
    procedure TForm1.Button2Click(Sender: TObject);
    var p:pchar;
    begin
      table1.open;
      p:=StrAlloc(table1.RecordSize);
      if   table1.GetCurrentRecord(p) then
      begin
        with pTableRec(p)^ do
        begin
         edit1.text:=a1;
         edit2.text:=a2;
         edit3.text:=a3;
       end;
      end;end;
      

  9.   

    我用的是sql server
    是用adoquery进行连接的
    我的数据表里有一个字段是rec_no是自动增长且设为主关键字的,跟字段类型应该没有关系吧
    我的代码如下:
    p:=StrAlloc(dm.q_rs_pd_yssj.RecordSize);
    if dm.q_rs_pd_yssj.GetCurrentRecord(p) then
    begin
       with pTableRec(p)^ do
       begin
          showmessage(cbdbh);
       end;
       end
       else
            showmessage('jin'); 
      

  10.   

    ado可能不行
    我从来不用ado,不能帮你试了