form4 中有text1,text2,combobox1,combobox2,memo1,datetimepicker1, 请问如何通过adoquery1  当点击button1保存时,将数据写入sql2000的 表emp中, 点button2修改 更新emp中的数据.

解决方案 »

  1.   

    button1時直接insert這個FORM中的組件的值;
    button2時再根據組件的條件值作為where條件,再作update...
      

  2.   

    begin
    那里开始写insert into emp 吗
    有相关例子的代码吗,刚学delphi 不是很懂;
      

  3.   

    類似這樣: qry_BaseTemp.Close;
            qry_BaseTemp.SQL.Clear;
            qry_BaseTemp.SQL.Add( ' insert into RES_HR_RSYD_Log (TypeID,ACCOUNT_ID,FULL_NAME,YCB,YBM,YBMID,YKB,YZXB,YBC,YJZ,YZJQF,YCBZX,YGW,YZW,XCB,XBM,XKB,XZXB,XBMID,XBC,XJZ,XZJQF,XCBZX,XGW,XZW,JN,FLAG,USERID,USERNAME,SXRQ) values (''刪除'', ');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('ACCOUNT_ID').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('FULL_NAME').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YCB').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YBM').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YBMID').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YKB').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YZXB').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YBC').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YJZ').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YZJQF').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YCBZX').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YGW').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('YZW').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XCB').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XBM').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XKB').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XZXB').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XBMID').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XBC').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XJZ').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XZJQF').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XCBZX').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XGW').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('XZW').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('JN').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(qry_ydcx.fieldbyname('FLAG').AsString)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(_UserNo)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(_UserName)+',');
            qry_BaseTemp.SQL.Add(QuotedStr(FormatDateTime('yyyy/mm/dd',qry_ydcx.fieldbyname('SXRQ').AsDateTime))+')');
            qry_BaseTemp.ExecSQL;PS:其中qry_ydcx.fieldbyname('xxx').AsString部分可寫成你的VCL組件值,如:
    text1,text2,combobox1,combobox2,memo1,datetimepicker1...insert into emp (a,b) values ('''+ trim(text1.text)+''','''+ trim(text2.text)+''',...)
      

  4.   


    写入adoquery1.append;
    adoquery1.fieldbyname('a').asstring := edit1.text;
    adoquery1.fieldbyname('b').asstring := edit2.text;

    adoquery1.Post;
    修改
    adoquery1.edit;
    adoquery1.fieldbyname('a').asstring := edit1.text;
    adoquery1.fieldbyname('b').asstring := edit2.text;

    adoquery1.Post;
      

  5.   

    form4 中有text1,text2,combobox1,combobox2,memo1,datetimepicker1
    -----添加------
    AdoQuery.close;
    AdoQuery.SQl.clear;
    AdoQuery.SQL.add('insert emp(f1,f2,f3,f4,f5,f6) values (:v1,:v2,:v3,:v4,:v5,:v6)');
    ADOQuery1.Parameters.ParamByName('v1').value := text1.text;
    ADOQuery1.Parameters.ParamByName('v2').value := text2.text;
    ADOQuery1.Parameters.ParamByName('v3').value := combobox1.text;
    ADOQuery1.Parameters.ParamByName('v4').value := combobox3.text;
    ADOQuery1.Parameters.ParamByName('v5').value := memo1.text;
    ADOQuery1.Parameters.ParamByName('v6').value := datetimepicker1.datetime;
    ADOQuery1.execsql;
      

  6.   

    ---修改的语句需要加where条件,你要修改的是哪条数据,表中定义个主键吧
      

  7.   

    [Quote=引用 5 楼 zcfzcf001 的回复:]
    form4 中有text1,text2,combobox1,combobox2,memo1,datetimepicker1
    -----添加------
    AdoQuery.close;
    AdoQuery.SQl.clear;
    AdoQuery.SQL.add('insert emp(f1,f2,f3,f4,f5,f6) values (:v1,:v2,:v3,:v4,:v5,:v6)');
    ……
    这个改成 sql.Add('insert into emp(name,emp_id,birthday,emp_dpt,card_id,edu,sex,nation, college,profession,political,marriage,origo,address)');
    sql.add('values (:name,:emp_id,:birthday,:emp_dpt,:card_id,:edu,:sex,:nation,:college,:profession,:political,:marriage,:origo,address)');
    后面还有列, 怎么办,再加进去就出错了。
      

  8.   

    新增保存已可以了,不知 编辑这个代码怎么写
    新增代码如下。
    procedure TForm4.Button1Click(Sender: TObject);
    begin
     with adoquery1 do
      begin
      close;
      sql.Clear ;sql.Add('insert into emp(n1,n2,n3,n4,n5,n6,n7,n8, n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,n25,n26,n27)');
    sql.Add('values (:n1,:n2,:n3,:n4,:n5,:n6,:n7,:n8,:n9,:n10,:n11,:n12,:n13,:n14,:n15,:n16,:n17,:n18,:n19,:n20,:n21,:n22,:n23,:n24,:n25,:n26,:n27)');
      Parameters.ParamByName('n1').value:=edit1.text;
      Parameters.ParamByName('n2').value:=edit2.text;
     Parameters.ParamByName('n3').value:=comb1.text;  Parameters.ParamByName('n4').value:=edit3.text;
      Parameters.ParamByName('n5').value:=combobox2.text;
       Parameters.ParamByName('n6').value:=edit4.text;
      Parameters.ParamByName('n7').value:=combobox9.text;
      Parameters.ParamByName('n8').value:=combobox11.text;
      Parameters.ParamByName('n9').value:=edit7.text;
      Parameters.ParamByName('n10').value:=edit8.text;
      Parameters.ParamByName('n11').value:=combobox1.text;
      Parameters.ParamByName('n12').value:=combobox8.text;
      Parameters.ParamByName('n13').value:=edit11.text;
      Parameters.ParamByName('n14').value:=combobox3.text;
      Parameters.ParamByName('n15').value:=edit12.text;
      Parameters.ParamByName('n16').value:=combobox10.text;
       Parameters.ParamByName('n17').value:=edit5.text;
      Parameters.ParamByName('n18').value:=combobox4.text;
      Parameters.ParamByName('n19').value:=combobox5.text;
      Parameters.ParamByName('n20').value:=combobox6.text;
      Parameters.ParamByName('n21').value:=combobox7.text;
       Parameters.ParamByName('n22').value:=edit9.text;
      Parameters.ParamByName('n23').value:=edit10.text;
      Parameters.ParamByName('n24').value:=edit13.text;
      Parameters.ParamByName('n25').value:=edit14.text;
      Parameters.ParamByName('n26').value:=edit15.text;
      Parameters.ParamByName('n27').value:=edit16.text;
      execsql;
      edit1.text:=''; edit2.text:='';
    comb1.text:='';edit3.text:='';
    combobox2.text:='';
    edit4.text:='';
    combobox9.text:='';
    combobox11.text:='';
    edit7.text:='';
    edit8.text:='';
    combobox1.text:='';
    combobox8.text:='';
    edit11.text:='';
    combobox3.text:='';
    edit12.text:='';
    combobox10.text:='';
    edit5.text:='';
    combobox4.text:='';
    combobox5.text:='';
    combobox6.text:='';
    combobox7.text:='';
    edit9.text:='';
    edit10.text:='';
    edit13.text:='';
    edit14.text:='';
    edit15.text:='';
    edit16.text:='';
      showmessage('保存成功')
      end;
    end;end.
      

  9.   

    就是双击dbgrid一条记录后会弹出对应的明细记录,“新增”按扭如上,可以正常运行,现在上面有个"编辑“按扭,这个代码不知如何写
      

  10.   


    改成这样吗,好像不行procedure TForm4.Button1Click(Sender: TObject);
    begin adoquery1.append;adoquery1.fieldbyname('n1').asstring := edit1.text;
    adoquery1.fieldbyname('n2').asstring := edit2.text;
    adoquery1.Post; showmessage('保存成功')
      end;
      

  11.   

    那里都能看到kye_jufei
     
    ((飛飛VS玲玲)天涯浪子居士)的身影
      

  12.   

    var SQL,S,err:string;
    begin
      S:=DBGrid1.DataSource.DataSet.FieldByName('ID').asString;
      SQL:='Update ÀÏÈË»ù±¾ÐÅÏ¢ set ';
      SQl:=SQL+'±àºÅ=0,';
      SQl:=SQL+'ÐÕÃû='+#39+Trim(DBEdit1.Text)+#39+',';
      SQl:=SQL+'ÐÔ±ð='+#39+Trim(DBComboBox1.Text)+#39+',';
      SQl:=SQL+'³öÉúÄêÔÂ='+#39+Trim(DBEdit3.Text)+#39+',';
      SQl:=SQL+'ÄêÁä='+#39+Trim(DBEdit4.Text)+#39+',';
      SQl:=SQL+'Éí·ÝÖ¤ºÅ='+#39+Trim(DBEdit16.Text)+#39+',';
      SQl:=SQL+'Éç±£¿¨ºÅ='+#39+Trim(DBEdit17.Text)+#39+',';
      SQl:=SQL+'»§¼®µØÖ·='+#39+Trim(DBEdit19.Text)+#39+',';
      SQl:=SQL+'¼ÒÍ¥µØÖ·='+#39+Trim(DBEdit18.Text)+#39+',';
      SQl:=SQL+'±¸×¢='+#39+Trim(DBEdit21.Text)+#39+',';
      SQl:=SQL+'Ãñ×å='+#39+Trim(DBComboBox4.Text)+#39+',';
      SQl:=SQL+'ÎÄ»¯³Ì¶È='+#39+Trim(DBComboBox8.Text)+#39+',';
      SQl:=SQL+'ÕþÖÎÃæò='+#39+Trim(DBComboBox9.Text)+#39+',';
      SQl:=SQL+'»éÒö×´¿ö='+#39+Trim(DBComboBox2.Text)+#39+',';
      SQl:=SQL+'×ÓÅ®×´¿ö='+#39+Trim(DBComboBox10.Text)+#39+',';
      SQl:=SQL+'¾­¼ÃÀ´Ô´='+#39+Trim(DBComboBox7.Text)+#39+',';
      SQl:=SQL+'ÈëסÀàÐÍ='+#39+Trim(DBComboBox5.Text)+#39+',';
      SQl:=SQL+'ÀÏÈËÀàÐÍ='+#39+Trim(DBComboBox6.Text)+#39+',';
      SQl:=SQL+'»¤ÀíµÈ¼¶='+#39+Trim(DBComboBox3.Text)+#39+',';
      SQl:=SQL+'ÈëÔºÈÕÆÚ='+#39+Trim(DBComboBox12.Text)+#39+',';
      SQl:=SQL+'³öÔºÈÕÆÚ='+#39+Trim(DBEdit10.Text)+#39+',';
      SQl:=SQL+'ËÀÍöÈÕÆÚ='+#39+Trim(DBEdit14.Text)+#39+',';
      SQl:=SQL+'²¿ÃÅ='+#39+Trim(DBComboBox13.Text)+#39+',';
      SQl:=SQL+'´²ºÅ='+#39+Trim(DBEdit24.Text)+#39+',';
      SQl:=SQL+'µµ°¸ºÅ='+#39+Trim(DBEdit6.Text)+#39;
      SQl:=SQL+' where ID='+#39+S+#39;
      if not DataModule1.SocketConnection1.AppServer.MyQuery(SQL,err)
        then MessageBox(self.handle,pchar('¸üÐÂÊý¾Ý³ö´í:   '+err),'´íÎó',MB_OK+MB_ICONERROR);
    end;