procedure  TNew_person_add.person_list_add(Ename:TEdit;Epin,Eperson_tell,Eperson_QQ,Eperson_mail,Eperson_position,Eperson_addr:TEdit;Person_Age:integer);
Begin
  Comman.UsernpQ.SQL.Clear;
  Comman.UsernpQ.SQL.Add('Select * from Person_Name_password');
  Comman.UsernpQ.Open;
  comman.UsernpQ.Append;
  comman.UsernpQ['user_name']:=Ename;
  comman.UsernpQ['user_password']:=Epin;
  Comman.UsernpQ['User_Birs']:=StrToInt(Person_Age);
  Comman.UsernpQ['User_Tell']:=Eperson_tell;
  Comman.UsernpQ['User_QQ']:=Eperson_QQ;
  Comman.UsernpQ['User_Email']:=Eperson_mail;
  Comman.UsernpQ['User_Position']:=Eperson_position;
  Comman.UsernpQ['User_Address']:=Eperson_addr;
end;上面是函数體。下面是調用。
procedure TNew_person_add.B_addClick(Sender: TObject);
begin
  person_list_add(E_name,E_pin,E_person_tell,E_person_QQ,E_person_mail,E_person_position,E_person_addr,E_Age);
   IF application.MessageBox('妳確定輸入正確了?','操作正確吗?',MB_OKCANCEL)=Mrok then
      comman.UsernpQ.Post
   Else
      comman.UsernpQ.Cancel;
end;可是會一直出錯呀。[Error] Page4.pas(55): Incompatible types: 'Variant' and 'TEdit'
  [Error] Page4.pas(56): Incompatible types: 'Variant' and 'TEdit'
  [Error] Page4.pas(57): Incompatible types: 'String' and 'Integer'
  [Error] Page4.pas(58): Incompatible types: 'Variant' and 'TEdit'
  [Error] Page4.pas(59): Incompatible types: 'Variant' and 'TEdit'
  [Error] Page4.pas(60): Incompatible types: 'Variant' and 'TEdit'
  [Error] Page4.pas(61): Incompatible types: 'Variant' and 'TEdit'
  [Error] Page4.pas(62): Incompatible types: 'Variant' and 'TEdit'
  [Error] Page4.pas(70): Undeclared identifier: 'E_person_mail'
  [Error] Page4.pas(70): Incompatible types: 'Integer' and 'TEdit'
  [Fatal Error] page1.pas(34): Could not compile used unit 'Page4.pas'我要怎么做才行呢? 請各位指教一下。多謝。。

解决方案 »

  1.   

    comman.UsernpQ['user_name']:=trim(Ename.text);
      comman.UsernpQ['user_password']:=trim(Epin.text);下面的同上,try it again!
      

  2.   

    这里有问题:
      comman.UsernpQ['user_name']:=Ename;
      comman.UsernpQ['user_password']:=Epin;
      Comman.UsernpQ['User_Birs']:=StrToInt(Person_Age);
      Comman.UsernpQ['User_Tell']:=Eperson_tell;
      Comman.UsernpQ['User_QQ']:=Eperson_QQ;
      Comman.UsernpQ['User_Email']:=Eperson_mail;
      Comman.UsernpQ['User_Position']:=Eperson_position;
      Comman.UsernpQ['User_Address']:=Eperson_addr;改为:comman.UsernpQ.fieldvalues['user_name']:=Ename
          .......
          .....
      

  3.   

    comman.UsernpQ['user_name']:=Ename;
      comman.UsernpQ['user_password']:=Epin.value;
      Comman.UsernpQ['User_Birs']:=StrToInt(Person_Age.value);
      Comman.UsernpQ['User_Tell']:=Eperson_tell.value;
      Comman.UsernpQ['User_QQ']:=Eperson_QQ.value;
      Comman.UsernpQ['User_Email']:=Eperson_mail.value;
      Comman.UsernpQ['User_Position']:=Eperson_position.value;
      Comman.UsernpQ['User_Address']:=Eperson_addr.value;
      

  4.   

    Comman.UsernpQ.SQL.Clear;
    Comman.UsernpQ.SQL.Add('insert Person_Name_password values(:Pname,:Ppassword......)');
      Comman.UsernpQ.parameters.ParamByName('Pname').value:=ename.text;
      ......
     if .. then Comman.UsernpQ.open;
     
         
      

  5.   

    :)
    还有70行的'E_person_mail'改为'Eperson_mail'
      

  6.   

    用adoquery直接在sql中写insert就行了;还有需要把你的值传给你的参数
      

  7.   

    E_name,E_pin,E_person_tell,E_person_QQ,E_person_mail,E_person_position,E_person_addr,E_Age 这些变量是不是都是Edit的控件名字啊,如果需要读取值需要加  XXX.Text
      

  8.   

    Ename:TEdit  你看你这个,下面应该是Ename.text,其它类似这样
    comman.UsernpQ('user_name').AsString:=Ename.text;//其它一样
      

  9.   

    看来这位兄弟对delphi对像还不是很了解呀,
    procedure  TNew_person_add.person_list_add(Ename:TEdit;Epin,Eperson_tell,Eperson_QQ,Eperson_mail,Eperson_position,Eperson_addr:TEdit;Person_Age:integer);”TEdit“这可是对像(可以说是控件)他有很多属性的,你要的是他的值,而”TEdit“的值是”TEdit“.text;你知道了吗?
      

  10.   

    函数定义不好了。
    调用时多写一点了,如果是控件。
    procedure  TNew_person_add.person_list_add(Ename,Epin,Eperson_tell,Eperson_QQ,Eperson_mail,Eperson_position,Eperson_addr,Person_Age:string);
    Begin
      Comman.UsernpQ.SQL.Clear;
      Comman.UsernpQ.SQL.Add('Select * from Person_Name_password');
      Comman.UsernpQ.Open;
      comman.UsernpQ.Append;
      comman.UsernpQ['user_name']:=Ename;
      comman.UsernpQ['user_password']:=Epin;
      Comman.UsernpQ['User_Birs']:=StrToInt(Person_Age);
      Comman.UsernpQ['User_Tell']:=Eperson_tell;
      Comman.UsernpQ['User_QQ']:=Eperson_QQ;
      Comman.UsernpQ['User_Email']:=Eperson_mail;
      Comman.UsernpQ['User_Position']:=Eperson_position;
      Comman.UsernpQ['User_Address']:=Eperson_addr;
    end;
    下面是調用。
    procedure TNew_person_add.B_addClick(Sender: TObject);
    begin
      person_list_add(E_name.text,E_pin.text,E_person_tell.text,E_person_QQ.text,E_person_mail.text,E_person_position.text,E_person_addr.text,E_Age.text);
       IF application.MessageBox('妳確定輸入正確了?','操作正確吗?',MB_OKCANCEL)=Mrok then
          comman.UsernpQ.Post
       Else
          comman.UsernpQ.Cancel;
    end;这样不是好一点吗?
      

  11.   

    问一下:SERVER中是numeric.带几位小数的类型.在DELPHI中如何保存数据
     data1.qsgd.parameters.parambyname('p6').value:=  ?(xdj.text);
      

  12.   

    data1.qsgd.parameters.parambyname('p6').asfloat:=strtofloat(xdj.text);到处见到你的
      

  13.   

    在每個参数后加個TEXT例:Ename.Text就行了。