我用的是delphi自带的数据库,pa..7的类型的,有一个问题就是我能SQL能很容易的把数据写进去,但是就是不能用update更新,不知道是怎么回事,请大家帮忙
源码如下
unit rukudan;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, DB, DBTables;type
  TForm3 = class(TForm)
    Label1: TLabel;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    ComboBox1: TComboBox;
    Edit4: TEdit;
    ComboBox2: TComboBox;
    Edit5: TEdit;
    DateTimePicker1: TDateTimePicker;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Query1: TQuery;
    Query2: TQuery;
    Query3: TQuery;
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
    procedure Edit7KeyPress(Sender: TObject; var Key: Char);
    procedure Edit8KeyPress(Sender: TObject; var Key: Char);
    procedure Edit9KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form3: TForm3;implementation{$R *.dfm}procedure TForm3.Button3Click(Sender: TObject);
begin
  form3.Close;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit9.Text:='';end;procedure TForm3.FormCreate(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit9.Text:='';end;procedure TForm3.Button1Click(Sender: TObject);
 begin
if (edit1.Text='') or (edit2.Text='')  or (edit3.Text='') or (edit4.Text='') or (edit5.Text='') or (edit7.Text='') or (edit8.Text='') or (edit9.Text='')then
     begin
 showmessage('请将信息输入完整');
 exit;
end;
 begin
 query1.Close;
  query1.SQL.Clear;
  query1.SQL.Add('select * from jsdate');
  query1.SQL.Add('Where jianma=:jianma');
  query1.ParamByName('jianma').AsString:=edit1.Text;
  try
  query1.Open;
   except
  showmessage('执行出错,请与系统管理员联系');
  exit;
 end;
  if query1.RecordCount<=0  then
  begin
   with query2 do
   begin
   query2.Close;
  query2.SQL.Clear;
  query2.SQL.Add(' insert into jsdate(jianma,shuliang,mingcheng,danwei,guige,gongying,pihao,riqi,');
  query2.SQL.Add('jingj,lingshouj,candi,beizu)');
  query2.sql.Add(' values (:jianma,:shuliang,:mingcheng,:danwei,:guige,:gongying,:pihao,:riqi,');
  query2.SQL.Add( ':jingj,:lingshouj,:candi,:beizu)');  query2.ParamByName('jianma').AsString:=edit1.Text;
  query2.ParamByName('shuliang').AsFloat:=strtofloat(edit2.Text);
  query2.ParamByName('mingcheng').AsString:=edit3.Text;
  query2.ParamByName('danwei').AsString:=ComboBox1.Text;
  query2.ParamByName('guige').AsString:=edit4.Text;
  query2.ParamByName('gongying').AsString:=ComboBox2.Text;
  query2.ParamByName('pihao').AsString:=edit5.Text;
  query2.ParamByName('riqi').AsDateTime:=DateTimePicker1.Date;
  query2.ParamByName('jingj').AsFloat:=strtofloat(edit6.Text);
  query2.ParamByName('lingshouj').AsFloat:=strtofloat(edit7.Text);
  query2.ParamByName('candi').AsString:=edit8.Text;
  query2.ParamByName('beizu').AsString:=edit9.Text;
  try
  query2.ExecSQL;
    except
  showmessage('执行出错,请检查数据输入是否正确');
   exit;
    end;
    end;
 if query1.RecordCount>0  then
 begin
with query3 do
 begin
   close;
   Sql.clear;
   SQL.Add(' update jsdate set shuliang=shuliang+'+edit2.text+',jingj='+edit6.text+',lingshouj='+edit6.text+' where jianma='+'''edit1.text'' ');
   {query3.SQL.Add(' shuliang=:endshuliang,jingj=:endjingj,lingshouj=:endlingshouj ');
   query3.SQL.Add(' where jianma=:endjianma ');
   query3.ParamByName('endshuliang').AsFloat:=form3.query1.FieldValues['shuliang'] + strtofloat(edit2.text);
   query3.ParamByName('endjingj').AsFloat:=strtofloat(edit6.Text);
   query3.ParamByName('endlingshouj').AsFloat:=strtofloat(edit7.Text);
   query3.ParamByName('endjianma').AsString:=edit1.Text;}
   try
 ExecSQL;
  except
  showmessage('执行出错,请检查数据输入是否正确,');
   exit;
  end;
  end;
  end;
 end;
 end;
 edit1.Text:='';
 edit2.Text:='';
 edit3.Text:='';
 edit4.Text:='';
 edit5.Text:='';
 edit6.Text:='';
 edit7.Text:='';
 edit8.Text:='';
 edit9.Text:='';
 end;
procedure TForm3.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
  edit1.setFocus;
end;procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
      edit2.setFocus;
end;procedure TForm3.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
 ComboBox1.SetFocus;
end;
procedure TForm3.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
      edit5.setFocus;
end;procedure TForm3.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
      edit6.setFocus;
end;procedure TForm3.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
      edit7.setFocus;
end;procedure TForm3.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
      edit8.setFocus;
end;procedure TForm3.Edit8KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
      edit9.setFocus;
end;procedure TForm3.Edit9KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
      button1.setFocus;
end;end.
急急急,望大家帮帮小弟

解决方案 »

  1.   

    update Tablename set 字段名='dfas' where [...]
    :)
      

  2.   

    SQL.Add(' update jsdate set shuliang=shuliang+'+edit2.text+',jingj='+edit6.text+',lingshouj='+edit6.text+' where jianma='+'''edit1.text'' ');
    这句话好像没错呀,为什么会不执行呢,或者执行了没起作用呢
    我是在线等的,
      

  3.   

    where 后面的条件不成立 怎么更新呢
      

  4.   

    你到数据库里去执行一下你的SQL语句不就知道是哪里的原因了
      

  5.   

    where jianma='+'''edit1.text'' ');
    这段句子是错误的,应为:
    where jianma='''+edit1.text+''' ');
      

  6.   

    对了,我能再问一下,我用的是自带的数据库,如何直接执行sql语句呢?