type
MyRec=record
i:integer;
d:double;
str:string;
end;
那么现在把这个结构体传递给SQLProcess这样一个函数,那么想在函数里面把结构体里的各个数据存入数据库!
那么在不访问i,d,str变量的情况下如何遍历这个结构体呢?
也就是说最好不要MyRec.i,MyRec.d这样处理,因为在函数中毕竟不知道结构体里到底有什么数据?

解决方案 »

  1.   

    你不知道结构体的定义你怎么读啊,比如你怎么知道i是integer类型?
      

  2.   


    type
      MyRec=record
      i:integer;
      d:double;
      str:string;
      end;//赋值
    procedure TForm1.Button1Click(Sender: TObject);
    var
      r:MyRec;
    begin
      r.i := 10;
      r.d := 100;
      r.str := 'abc';
      ToDB(r);
    end;//读取
    procedure TForm1.ToDB(rec: MyRec);
    begin
      ShowMessage(rec.str);//这里替换成你的写数据库的代码
    end;
      

  3.   

    TO bdmhprocedure TForm1.ToDB(rec: MyRec);
    begin
      ShowMessage(rec.str);//这里替换成你的写数据库的代码
    end;
    我问的关键就是如何写入数据库啊,怎么访问结构体里的各个元素?
      

  4.   

    大哥,写的清清楚楚,你还不知道怎么访问结构体元素吗,直到rec.str这是什么吗
      

  5.   

    能不能用变体类型呢
    Var
    V:Variant;
    Begin
    V:=VarArrayof([1,2.2,’delphi’]);
    End;
    然后用V[1],V[2]写数据库,那么当我数据库的字段结构是跟变体类型一样的话是不是就可以了呢?
    大家觉得这个方案可行吗?