sql update sorun

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
dcpromo
Üye
Mesajlar: 38
Kayıt: 12 May 2005 12:27

sql update sorun

Mesaj gönderen dcpromo »

merhaba arkadaşlar mssql veritabanı kullanıyorum.adoquery ile update yapacagımda "invalid colum name 'a'" hata alıyorum.

a = radio1.caption değeri acaba radiobuttondamı hata yapıyorum diye düşündüm sildim tarih alanından başlatttım sorguyu bundada
"invalid a column name '21.11.205'" diye hata verdi.

Kod: Tümünü seç

ADOQuery1.SQL.Clear;
Adoquery1.SQL.add('update urunler set urun_alt="'+radiobutton1.caption+'", urun_tariha="'+tarihx.text+'", urun_saata="'+saatx.text+'" where urunkodu="'+urunkodux.text+'"');
AdoQuery1.ExecSQL;

yardımlarınız için çok teşekkür ederim.
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

Slm..

Mssql kullanmadım ama senin sorunun tırnak sorunu olması lazım.Parametre kullanırsan sorun yasamazsın...

viewtopic.php?t=11838&highlight=parametre
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

Bir de yeni farkettim.. :?:

urun_tariha bu alanın tarih tipindeyse 21.11.205 böyle bir tarihi de kabul etmez..
DateTimePicker kullanırsan hatalı tarih girişini de engellemiş olursun..
dcpromo
Üye
Mesajlar: 38
Kayıt: 12 May 2005 12:27

SLM

Mesaj gönderen dcpromo »

tarih le alakalı değil ya ben tarih alanınıda sildim bu sefer de saat de invalid colum name '13:33:42'

:oops:
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

Mesaj gönderen mucar »

Bir de parametre kullanıp deneseniz, en sağlıklısı parametre kullanmak diye düşünüyorum.
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
sizin mesajınız alanı bulamadığı hakkındadır. Adoquery veya kullandığınız dbgrid içinden fieldsları silmiş olduğunuz için böyle bir mesaj vermiş olabilir.
Adoquery ile sağ tıklayıp field editöre bir bakın orada yoksa add ile ekleyin veya en son olarak kullandığınız sql komutunda * yerine belirli alanları istemişseniz. onlar çıkmadığı için düzeltemiyorsunuz.
Field editöre bakın diyecem.
Bir de parametre kullansanız daha iyi olur bence kod daha okunaklı olur kanaatimce.
Kolay gelsin.
dcpromo
Üye
Mesajlar: 38
Kayıt: 12 May 2005 12:27

slm

Mesaj gönderen dcpromo »

ofenx kardeş saol yardımların için ama sorunu hala çözemedim :oops:
dbgridde ve adoquery1 de fieldların hepsi ekli başka ne yapabilirim..
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Alan isimlerini büyük harfle yazın. Bu şekilde çözülmesi lazım. Çünkü o şekilde denedim. sizin hatayı verdi. Demekki Adoquery alan isminde büyük harf istiyor.

Ayrıca adoquery1 i aynı zamanda sorgulama için de kullanıyorsanız. tekrar select li hale getirin. Yani aşağıdaki gibi yapın.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin

    adoquery1.Close;
      ADOQuery1.SQL.Clear;
Adoquery1.SQL.add('update personel  set GIRDI=5650 where kno=3');
AdoQuery1.ExecSQL;

 adoquery1.Close;
ADOQuery1.SQL.Clear;
Adoquery1.SQL.add('select * from personel');
AdoQuery1.ExecSQL;
end;



Kolay gelsin.
turkcanfidan
Üye
Mesajlar: 380
Kayıt: 31 Eki 2005 03:26

Mesaj gönderen turkcanfidan »

slm

urun_tariha="'+tarihx.text+'", yanlış yazılmış.

urun_tariha = ''''+tarihx.text+'''' yazmak gerekiyor. burada çift tırnak değil, 4 adet tek tırnak. iki adedi string başlangıcı ve sonu, ikisi de tırnak içinde tek tırnak yerine geçiyor. böylece 4 tırnak kullanmak gerekiyor.
burada karşılaşabileceğin sorun SQL server ın ayarı türkçe değilse tarih formatı yyyy-mm-dd gibi ters olabilir. Bunu aşmak için en iyisi parametre kullanman gerekir.
urun_tariha = :Tarih gibi.
parametreyi de program içinde
qrSorgu.parameters.parambyName('Tarih').Value := DateTimePicker1.Date

diyebilirsin. ama burada yine sorun çıkabilir. bu sefer saat bilgiside parametrede gider. bunun için DateTimePicker1.Date yerine,

strtodate(datetostr(datetimepicker1.date)) dersen datetimepicker ın sorununu da çözmüş olursun.
Cevapla