代码如下: 
procedure Tupdateform.btn7Click(Sender: TObject); 
  var i:Integer; 
begin 
  try 
  
//DataModule3.ADO_Temp.Active:=True; 
with DataModule3.ADO_Temp do 
begin 
            Close; 
            SQL.Clear; 
            SQL.Text:='select * from message_message'; 
            Open; 
            edit; 
            FieldByName('qzid').AsString :=qzid.Text; 
            FieldByName('djsj').AsString := formatdatetime('yyyy-mm-dd',djsj.Date); 
            FieldByName('ypname').AsString :=ypname.Text; 
            FieldByName('xb').AsString := xb.Text; 
            FieldByName('age').AsString :=age.Text; 
            FieldByName('csrq').AsString := FormatDateTime('yyyy-mm-dd',csrq.Date); 
            FieldByName('mz').AsString :=mz.Text; 
            FieldByName('hf').AsString :=hf.Text; 
            FieldByName('sg').AsString :=sg.Text; 
            FieldByName('tz').AsString :=tz.Text; 
            FieldByName('jzd').AsString :=jzd.Text; 
            FieldByName('hjd').AsString :=hjd.Text; 
            FieldByName('zw').AsString := zw.Text; 
            FieldByName('qzlx').AsString :=qzlx.Text; 
            FieldByName('gznx').AsString :=gznx.Text; 
            FieldByName('gzjl').AsString :=gzjl.Text; 
            FieldByName('xxjl').AsString :=xxjl.Text; 
            FieldByName('nlzc').AsString :=nlzc.Text; 
            FieldByName('jtdh').AsString :=jtdh.Text; 
            FieldByName('sj').AsString := sj.Text; 
            FieldByName('qq').AsString := qq.Text; 
            FieldByName('msn').AsString :=msn.Text; 
            FieldByName('yx').AsString :=yx.Text; 
            FieldByName('zy').AsString := zw.Text; 
            if (not Image1.Picture.Bitmap.Empty) then 
    begin 
      pjpg:=tjpegimage.Create; 
      pjpg.Assign(Image1.Picture.Bitmap); 
      pic:=TMemoryStream.Create; 
      pjpg.SaveToStream(pic); 
      pic.Position:=0; 
    // image1.picture.bitmap.savetoStream(pic); 
    TBlobField(FieldByName('photo')).LoadFromStream(pic); 
      pic.Free; 
      pjpg.free; 
    end; 
    ExecSQL; 
    Next; 
    //清空窗体上的录入文字 
                    for i:=0 to componentcount-1 do 
                    begin 
                        if components[i] is tedit then 
                        begin 
                        tedit(components[i]).Text:='';                         end; 
                        if components[i] is tcombobox then 
                        begin 
                        tcombobox(components[i]).Text:=''; 
                        end; 
                      // pnl1.Enabled:=False; 
                    pnl2.Enabled:=False; 
                    end;                 btn7.Enabled:=false; 
                btn1.Enabled:=true; 
                btn3.Enabled:=False; 
                btn5.Enabled:=False; 
                end; 
    except 
    application.MessageBox('保存信息失败!','提示',64); end; 
updateform.Close; 
DataModule3.ADO_Temp.Open; 
end; 
方法对吗,如果不对,应该怎样处理?

解决方案 »

  1.   

    ExecSQL; //这个去掉
    Next; //这个也可以不要
      

  2.   


               ......
                Close; 
                SQL.Clear; 
                SQL.Text:='select * from message_message'; //最好加上条件(where),精确定位到要修改的记录
                Open; 
                edit;
               ...... 
                ExecSQL; //改成,POST
      

  3.   

    还是不行啊,加post了,但保存后,还是增加了一条新记录。问题的关键是修改的问题。谢谢了,