Geratoru resetlemek için Parametre geçmiyor

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Geratoru resetlemek için Parametre geçmiyor

Mesaj gönderen sair »

Kodda da görüldüğü gibi Generatoru tablodaki en büyük sayıya eşitlemem gerek. Ancak SQL 104 hatası alıyorum.
: da hata veriyor...
Neden Kaynaklanıyor olabilir..

Kod: Tümünü seç

Data.BUYUK.Close;
Data.BUYUK.Prepare;
Data.BUYUK.Open;
a:=Data.BuyukENBUYUK.AsInteger;

Data.SICILGEN.Close;
Data.SICILGEN.UnPrePare;
Data.SICILGEN.SQL.Clear;
Data.SICILGEN.SQL.Add('SET GENERATOR SICIL_GEN TO :EN');
Data.SICILGEN.Prepare;
Data.SICILGEN.Params[0].AsInteger:=a;
Data.SICILGEN.ExecQuery;
Veya generatoru resetleyebileceğim bi yöntem gerekli...
Sevgiler..
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

Data.SICILGEN.SQL.Add('SET GENERATOR SICIL_GEN TO 0');
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

a:=Data.BuyukENBUYUK.AsString;
Data.SICILGEN.SQL.Add('SET GENERATOR SICIL_GEN TO ' + a);

olarak dener misin?

Yani parametre kullanmadan değeri direk komuta gömerek. Bence parametre kullanmak sorun çıkarıyor. Bu tip komut türüne ne diyorlardı? ISQL diyesim geliyor. Yani standart SQL değilde veritabanına özel kullandıkları komut seti. Muhtemelen bu komut setinde parametre kullanmaya izin vermediğinden hatayı alıyorsun.
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Coderlord Teşekkürler
Ancak
Data.SICILGEN.SQL.Add('SET GENERATOR SICIL_GEN TO ' + a);
bundada a değişkenini string olarak görüyor :)

Salakça bi şey bu ya.. Firebird ü yazan abilerimizin aklına gelmedi demek ki generatore parametre geçilebileceği...

Sevgiler..
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

sair yazdı:Data.SICILGEN.SQL.Add('SET GENERATOR SICIL_GEN TO ' + a);
bundada a değişkenini string olarak görüyor :)
Çalışmadı mı yoksa başka bir problem mi var?

Orada yapmaya çalıştığım SQL komut sonucunun:

a = 12 olsun,
Bu durumda,
SET GENERATOR SICIL_GEN TO 12

haline getirmekti. AsString dememin nedeni + ile kolayca ekleyebilmek için.

Aslında değişken kullanmadan,
Data.SICILGEN.SQL.Add('SET GENERATOR SICIL_GEN TO ' +
Data.BuyukENBUYUK.AsString); olarak da yazılabilir.

Bu arada bu türe DSQL mi deniyordu? Kafama takıldı işte.. :D
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Teşekkür ederim Coderlord ... Süper bi taktik.. Ben düşünmemiştim bunu, iyi aklına geldi... a değişkenini integer olarak tanımlamıştım... Aklıma sonradan geldi. a yı string tanımlayınca çözüldü sorun....
Aklına sağlık.

Sevgiler...
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
Cevapla