Firebird Query text uzunluğu ne kadardır?

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
Kullanıcı avatarı
Yusuf AYDIN
Üye
Mesajlar: 69
Kayıt: 02 Oca 2004 05:45
Konum: Antalya

Firebird Query text uzunluğu ne kadardır?

Mesaj gönderen Yusuf AYDIN »

Selam arkadaşlar,

20000 kayıt içinden 1000 kayıtı ı değiştirmem gerekiyor.

update TABLE1 SET GUNCELEME_TARIH = current_date Where TABLE1.RECORD_ID = 3

1000 defa döngüye giriyorum.
bunun yerine
update TABLE1 SET GUNCELEME_TARIH = current_date Where ((TABLE1.RECORD_ID = 3) or
(TABLE1.RECORD_ID = 4) or
(TABLE1.RECORD_ID = 13) or
(TABLE1.RECORD_ID = 48) or
.
.
.
(TABLE1.RECORD_ID = 18722))
toplamda 1000 adet TABLE1.RECORD_ID = eklenmesi ile çok uzun bir query oluşucak

max query text sınırını ne kadardır? değiştirmek mümkün mü?
Firebird versiyonum 2.1.1.17910
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Firebird Query text uzunluğu ne kadardır?

Mesaj gönderen sabanakman »

Aslında where şartı TABLE1.RECORD_ID in (3,4,13,48,..,18722) şekline çevirirseniz bayağı boyut tasarrufu sağlarsınız aslında. Sorgu boyut limiti olarak 10 MB diyorlar sanki.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Firebird Query text uzunluğu ne kadardır?

Mesaj gönderen mkysoft »

Firebird için emin değilim ama MSSQL'de IN içine ayrı bir boyut sınırı var.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Firebird Query text uzunluğu ne kadardır?

Mesaj gönderen freeman35 »

bence kurgunu düzenlemen daha mantıklı. bu bir sefere mahsus bir şey ise, olabilir. Ama sürekliyse, tek tek row ları çağırıp güncellemek sql kullanmayı manasız kılıyor.
TABLE1.RECORD_ID listeni oluşturan şartları, where e uygulaman daha mantıklı.
TABLE1 de başka alanlar değiştiriyor ve bu değişiklik tarihini kaydetmek istiyorsan, TABLE1 e beforepost trigger ında bunu yapmak çok daha mantıklı olur. ikinci bir işleme de gerek kalmaz.
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 !!!
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Firebird Query text uzunluğu ne kadardır?

Mesaj gönderen ikra »

eger veritabani ile program ayni bilgisayar üzerinde calisiyorsa, bir udf yazilip, icerigi doldurulmus "cift küme array" yada "item+value" özelligi olan bir class'in pointeri parametre olarak gönderilip islem yaptirilabilinir.
kıdemsiz üye
Kullanıcı avatarı
Yusuf AYDIN
Üye
Mesajlar: 69
Kayıt: 02 Oca 2004 05:45
Konum: Antalya

Re: Firebird Query text uzunluğu ne kadardır?

Mesaj gönderen Yusuf AYDIN »

Where içinde ortak şartlar olmadığı için Query ye text olarak yazmam gerekiyordu ..
sabanakman beyin tekniği ile TABLE1.RECORD_ID in (3,4,13,48,..,18722) şeklinde hallettim.
"Table1.RECORD_ID in" ... parametre sayısı 1499 bilginiz olsun.
Herkese ilgisi için teşekkür ederim.
Cevapla