SQL le integer değişken

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

SQL le integer değişken

Mesaj gönderen husonet »

Arkadaşlar tablomda bir integer alanım var ben buna Sql kullanarak sorgulama içinde integer değişken göndermek istiyorum ama programımda hep hata alıyorum.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

kodu ve SQL cümlesini gönderirsen bakalım. Dönüşümlerde veya SQL cümlesinde bir hata vardır.

Kolay gelsin.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Kodum Şöyle

Kod: Tümünü seç



IslemNo := CariNakitIslemlerFrm.AdoDataSet1ISLEMNO.Value;

AdoQuery1.Close;
AdoQuery1.Sql.Clear;
AdoQuery1.Sql.Add('Select * From NakitIslemler');
AdoQuery1.Sql.Add('Where IslemNo = 'IslemNo'');
AdoQuery1.Open;

if AdoQuery1.RecordCount > 0 Then
      ShowMessage('Bu n.lu kayıt daha önce girilmiş' + #13#10 + ' lütfen işlem noyu değiştiriniz.');

Kullanıcı avatarı
calvan
Üye
Mesajlar: 119
Kayıt: 16 Haz 2003 05:10

Mesaj gönderen calvan »

parametre kullanman lazım, zannedersem aşağıdaki kod işini görür


IslemNo := CariNakitIslemlerFrm.AdoDataSet1ISLEMNO.Value;
AdoQuery1.Close;
AdoQuery1.Sql.Clear;
AdoQuery1.Sql.Add('Select * From NakitIslemler');
AdoQuery1.Sql.Add('Where IslemNo = :IslemNo');
AdoQuery1.Parameters[0].Value := IslemNo
AdoQuery1.Open;
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

IslemNo := CariNakitIslemlerFrm.AdoDataSet1ISLEMNO.Value;

Value size değerin tipini verir yani TField stringse string integer sa intiger
ama
AdoQuery1.Parameters[0].Value := IslemNo
burdaki value variant tır yani tipi belli olmayan değer. bu atama yapılınca delphi sırayla tüm bildiği veri tiplerine göre tarama yapıyor, MArcu contu amcam bu işleminse 12 kat yavaşlık verdiğini ve bu yüzden variantlara atamak yerine asinteger asstring gibi gerçek tiplerine atama yapın
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Arkadaşlar yardımlarınız için çok teşekkür ederim. Problemimi çözdüm sevgili arkadaşım Freeman sizinde tafsiyelerinize uyacağım uyarınız için ayrıca teşekkür ederim.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba

Arkadaslar tafsiyenize uymaya çalışıyorum. Kodlarımda düzenleme yapıyorum
AdoQuery1.Parameters[0].Value := IslemNo ;
bu kodu şu şekilde değiştiriyorum ve çalışan kodu çalıştıramıyorum.
AdoQuery1.Parameters[0].AsInteger := IslemNo;
Sizce problem nedir.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

hocam ben daha önce ADO kullandım. Bana en uygunu :

Query1.Parameters.ParamByName('PAR').Value := ...

şeklinde kullanmak gelmişti. Yanlış hatırlamıyorsam zaten ADO'da sadece Value şeklinde kullanabiliyoruz.

Kolay gelsin.
Cevapla