procedure TChangefrm.Button1Click(Sender: TObject);
var q:Tquery;
begin
    if trim(edit1.Text)<>trim(edit2.Text) then
       begin
           showmessage('密碼兩次輸入不一致,請重新確認!');
           edit2.Text:='';
           edit2.SetFocus;
       end
    else
       try
          q:=Tquery.Create(self);
          q.DatabaseName:='ORClxx';
          q.Close;
          q.SQL.Clear;
          q.SQL.Add('update login_user set login_psw='+trim(edit1.Text)+' where emplyid='+uname);
          q.execSQL;
          q.Close;
          q.Free;
          showmessage('密碼修改成功!');
          edit1.Text:='';
          edit2.Text:='';
          close;
       except
          showmessage('連接數據庫出錯!');
          exit;
       end;
end;爲什麽我將密碼修改成05248,提示成功后,我打開表一看,確是5248,爲什麽開頭的0寫不進去?
麻煩大家指點一下,在此,謝謝大家了!
表中的密碼字段,我定義的是字符型呀,長度為6,怎麽會出現這種情況呢?

解决方案 »

  1.   

    q.SQL.Add('update login_user set login_psw='+trim(edit1.Text)+' where emplyid='+uname);
              q.execSQL;
    改成
     q.SQL.Add('update login_user set login_psw='''+trim(edit1.Text)+''' where emplyid='+uname);
              q.execSQL;
      

  2.   

    'update login_user set login_psw=''''+trim(edit1.Text)+'''' where emplyid='+uname);
      

  3.   

    説明:我用的是Oracle數據庫,密碼字段定義的是varchar2(6),怎麽會出現這種情況呢?
      

  4.   

    你那样写把05248认成数字了,这样改一下就可以了
    update login_user set login_psw='''+trim(edit1.Text)+'''