Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
delphi mssql UPDATE
#1
with ADOQuery1 do
begin
 Close;
 SQL.Clear;
 SQL.Add('UPDATE GİRİŞ SET KULLANICIADI ='''+Edit3.Text+''' AND ŞİFRE='''+Edit4.text+'''   WHERE KULLANICIADI ='''+Edit1.Text+''' and ŞİFRE='''+Edit2.text+''' ');
 ExecSQL;

end;
 hata alıyorum yardım edermisiniz yapmak istediğim kullanıcıadı ve şifre güncellemek
Cevapla
#2
Şifre kolonu türkçe karakterlerle tanımlamışsınız.
SQL de şçöüğı harfleri içeremez
Cevapla
#3
3 tane ''' kullanmışsınız.. 4 olması gerekiyor.. Fakat onun yerine QuotedStr() kullanın

SQL.Add('UPDATE GİRİŞ SET KULLANICIADI ='+QuotedStr(Edit3.Text)+' AND ŞİFRE='+QuotedStr(Edit4.text)+' WHERE KULLANICIADI ='+QuotedStr(Edit1.Text)+' and ŞİFRE='+QuotedStr(Edit2.text));
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#4
(10-05-2022, Saat: 21:23)mcuyan Adlı Kullanıcıdan Alıntı: 3 tane ''' kullanmışsınız.. 4 olması gerekiyor.. Fakat onun yerine QuotedStr() kullanın

SQL.Add('UPDATE GİRİŞ SET KULLANICIADI ='+QuotedStr(Edit3.Text)+' AND ŞİFRE='+QuotedStr(Edit4.text)+'   WHERE KULLANICIADI ='+QuotedStr(Edit1.Text)+' and ŞİFRE='+QuotedStr(Edit2.text));

ıncorrect syntax near the ketword'and'
hatası alıyorum neden olabilir
Cevapla
#5
(11-05-2022, Saat: 08:44)yunusemre Adlı Kullanıcıdan Alıntı:
(10-05-2022, Saat: 21:23)mcuyan Adlı Kullanıcıdan Alıntı: 3 tane ''' kullanmışsınız.. 4 olması gerekiyor.. Fakat onun yerine QuotedStr() kullanın

SQL.Add('UPDATE GİRİŞ SET KULLANICIADI ='+QuotedStr(Edit3.Text)+' AND ŞİFRE='+QuotedStr(Edit4.text)+'   WHERE KULLANICIADI ='+QuotedStr(Edit1.Text)+' and ŞİFRE='+QuotedStr(Edit2.text));

ıncorrect syntax near the ketword'and'
hatası alıyorum neden olabilir


bu arada  and  değil ,  virgül koyun 

='+QuotedStr(Edit3.Text)+' AND ŞİFRE='+QuotedStr(Edit4.text)+' 
Kalan ömrünün en genç build’indesin.
Counter artar, deadline sabit.
Age++ çalışıyor, rollback yok.
Her yer exception
Cevapla
#6
(11-05-2022, Saat: 08:55)bydelphi Adlı Kullanıcıdan Alıntı:
(11-05-2022, Saat: 08:44)yunusemre Adlı Kullanıcıdan Alıntı: ıncorrect syntax near the ketword'and'
hatası alıyorum neden olabilir


bu arada  and  değil ,  virgül koyun 

='+QuotedStr(Edit3.Text)+' AND ŞİFRE='+QuotedStr(Edit4.text)+' 

evet hakısınız gözümden kaçmış teşekkürler
Cevapla
#7
evet AND i ben de kaçırmışım..
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#8
Lightbulb 
ya da....
parametre kullanılır. Böylece tırnak işareti karmaşasından kurtulunur.


   with ADOQuery1 do
  begin
   Close;
   SQL.Clear;
   SQL.Add('UPDATE GİRİŞ SET KULLANICIADI =:kullanici , ŞİFRE=:sifre  WHERE KULLANICIADI =:kullanici2 and ŞİFRE=:sifre2');
   Parameters.ParamByName('kullanici').Value:=Edit3.Text;
   Parameters.ParamByName('sifre').Value:=Edit4.Text;
   Parameters.ParamByName('kullanici2').Value:=Edit1.Text;
   Parameters.ParamByName('sifre2').Value:=Edit2.Text;
   ExecSQL;
  end;
Cevapla
#9
(16-05-2022, Saat: 09:17)forumcuali Adlı Kullanıcıdan Alıntı: ya da....
parametre kullanılır. Böylece tırnak işareti karmaşasından kurtulunur.


   with ADOQuery1 do
  begin
   Close;
   SQL.Clear;
   SQL.Add('UPDATE GİRİŞ SET KULLANICIADI =:kullanici AND ŞİFRE=:sifre  WHERE KULLANICIADI =:kullanici2 and ŞİFRE=:sifre2');
   Parameters.ParamByName('kullanici'):=Edit3.Text;
   Parameters.ParamByName('sifre'):=Edit4.Text;
   Parameters.ParamByName('kullanici2'):=Edit1.Text;
   Parameters.ParamByName('sifre2'):=Edit2.Text;
   ExecSQL;
  end;


Evet parametre kullanımında tırnakla uğraşmazsın çok doğru.
Ancak bu kod biraz eksik. ParamByName  TParameter tipindedir. sanırım unuttunuz  Smile
.Value kullanılarak şöyle yapılabilir;
Parameters.ParamByName('kullanici').Value:=  Edit1.Text; 
Parameters[0].Value := Edit1.Text; 
birde burada virgül yerine AND kalmış ;
  UPDATE GİRİŞ SET KULLANICIADI =:kullanici AND ŞİFRE=:sifre    
Kalan ömrünün en genç build’indesin.
Counter artar, deadline sabit.
Age++ çalışıyor, rollback yok.
Her yer exception
Cevapla
#10
(16-05-2022, Saat: 14:12)bydelphi Adlı Kullanıcıdan Alıntı:
(16-05-2022, Saat: 09:17)forumcuali Adlı Kullanıcıdan Alıntı: ya da....
parametre kullanılır. Böylece tırnak işareti karmaşasından kurtulunur.


   with ADOQuery1 do
  begin
   Close;
   SQL.Clear;
   SQL.Add('UPDATE GİRİŞ SET KULLANICIADI =:kullanici AND ŞİFRE=:sifre  WHERE KULLANICIADI =:kullanici2 and ŞİFRE=:sifre2');
   Parameters.ParamByName('kullanici'):=Edit3.Text;
   Parameters.ParamByName('sifre'):=Edit4.Text;
   Parameters.ParamByName('kullanici2'):=Edit1.Text;
   Parameters.ParamByName('sifre2'):=Edit2.Text;
   ExecSQL;
  end;


Evet parametre kullanımında tırnakla uğraşmazsın çok doğru.
Ancak bu kod biraz eksik. ParamByName  TParameter tipindedir. sanırım unuttunuz  Smile
.Value kullanılarak şöyle yapılabilir;
Parameters.ParamByName('kullanici').Value:=  Edit1.Text; 
Parameters[0].Value := Edit1.Text; 
birde burada virgül yerine AND kalmış ;
  UPDATE GİRİŞ SET KULLANICIADI =:kullanici AND ŞİFRE=:sifre    

çok doğru  tırnakları atalım derken 'VALUE' unutmuşuz ... yazarkende bişeyler eksik gelmiştiAngel
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  yapay zeka delphi kl007 9 624 26-02-2026, Saat: 09:12
Son Yorum: mrmarman
  Win 11 ve Delphi 7 Minimize sorunu. enigma 7 495 11-02-2026, Saat: 10:27
Son Yorum: RAD Coder
Question Delphi formunu nasıl otomatik tam ekran yapabilirim ? erdemklt0 2 322 23-01-2026, Saat: 10:02
Son Yorum: csunguray
  Delphi SLL kullanım sorunu Bay_Y 12 1.317 22-12-2025, Saat: 18:11
Son Yorum: Bay_Y
  Delphi ile SQL server bağlantı hatası yakalama Under 20 1.981 21-11-2025, Saat: 15:24
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi