Delphide Karekter Uzunluğu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

Delphide Karekter Uzunluğu

Mesaj gönderen aydogan46 »

Merhaba Arkadaşlar,
Kod yazarken, query1.sql.add(INSERT INTO ISCI (ISCI_NO,ADI,SOYADI) VALUES (1000,’AHMET’,’SAVAŞ’); gibi olan bir kodda karekter uzunluğu 250 yi aşıyorsa sorun veriyor. ama benim alan sayım 250 karakterden çok fazla. nasıl bir çözüm geliştirmem gerekir. Hepiniz kolay gele
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

Mesaj gönderen mucar »

Hangi veritabanını kullandığınızı belirtmemişsiniz. SQL Server alan uzunluğu olarak varchar için 8000 karaktere kadar destek veriyor.
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Verdiği hata Türkçe karakterlerden kaynaklanıyor olmasın :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

Mesaj gönderen aydogan46 »

hocam hata o şekilde değil, delphi editörde yazarken henüz daha hatayı veriyor.yani veritabanı alanları zaten buyuk. delphide kod yazma kısmında bir satırda 250 karakteri aştığında veriyo hatayı
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bir satırda yapmazsın sen de.

Kod: Tümünü seç

Query.SQL.Add('SELECT...');
Query.SQL.Add('WHERE ...');
Query.SQL.Add('ORDER BY..');
yaparsın.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,
@coderlord hocamın dediğine kesinlikle katılıyorum.
Böyle yaparak istediğiniz kadar. Karakter ekleyebilrsiniz.

Saygılarımla
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

Mesaj gönderen aydogan46 »

benimde takıldığım nokta orası zaten konu select olsa sorun yok. ama insert ve values satırlarında 250 karekterden fazla. benim asıl demek istediğim şu. query1.sql.add('values("'+edit1.text+'")') satırını nasıl iki veya üç satırda yazabilirim. sanırım daha net oldu. cevaplarınız için teşekkürler
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Eger Firebird kullanıyorsan
herbir inserti

INSERT INTO tabloadi (ID,ADI) VALUES (1,'deneme');
INSERT INTO tabloadi (ID,ADI) VALUES (2,'ikinci');

seklinde satır satır IBScript bilesenine ekle ve calıstır....
ÜŞENME,ERTELEME,VAZGEÇME
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

Mesaj gönderen aydogan46 »

hocam ben hala çözemedim. paradox kullanıyorum.
insert komutunda tek satırda 255 karekteri geçtiğinde hata veriyor. halbuki benim bayagı bir alanım var.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

bu benim yazışım elki fikir verir...

Kod: Tümünü seç

sor.SQL.Clear;
sor.SQL.Add('SELECT Count(Kaynak.kaynakno) AS sor, Kaynak.kaynakadi, ' +'Kaynak.kaynakyazari, Kaynak.kaynakyayinevi, Kaynaktur.kaynakturadi FROM Kaynaktur INNER JOIN Kaynak ON Kaynaktur.kaynakturno = Kaynak.kaynakturno GROUP');
sor.SQL.Add('BY Kaynak.kaynakadi, Kaynak.kaynakyazari, Kaynak.kaynakyayinevi, Kaynaktur.kaynakturadi HAVING (((Kaynak.kaynakadi)='''+trim(kaynakadi)+''') AND ((Kaynak.kaynakyazari)='''+trim(kaynakyazari)+''') AND ((Kaynak.kaynakyayinevi)='''+trim(kaynakyayinevi)+''') AND ((Kaynaktur.kaynakturadi)='''+trim(kaynakturu)+'''))');
sor.Open;


Siz hayal edin...Biz yapalım TuannaSoft...
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

[Error] Unit11.pas(792): String literals may have at most 25

Mesaj gönderen aydogan46 »

data.isci.Close;
data.isci.SQL.Clear;
data.isci.SQL.Add('insert into iscicalisan');
data.isci.SQL.Add('(tckimlikno,Sigortasicilno,adisoyadi,dogumtarihi,isegiristarihi,yukumlukimse,primodemehali,isyerino,olaysaati,olayiscisayisi,yaptigi_is,olus_sekli,taniklar,ay1,ay2,ay3,ay4,gun1,gun2,gun3,gun4,ucret1,ucret2,ucret3,ucret4,prim1,prim2,prim3,prim4,mah1,mah2,mah3,mah4)');
data.isci.SQL.Add('values('''+edit15.Text+''', '''+edit10.Text+''', '''+edit9.Text+''', '''+edit12.Text+''', '''+edit11.Text+''', '''+combobox3.Text+''', '''+combobox4.Text+''', '''+edit102.Text+''', '''+edit13.Text+''', '''+edit14.Text+''', '''+memo1.Text+''', '''+memo2.Text+''', '''+memo3.Text+''', '''+edit18.Text+''','''+edit19.Text+''','''+edit20.Text+''', '''+edit21.Text+''', '''+edit22.Text+''', '''+edit23.Text+''', '''+edit24.Text+''', '''+edit25.Text+''', '''+edit26.Text+''', '''+edit27.Text+''', '''+edit28.Text+''', '''+edit29.Text+''', '''+edit30.Text+''', '''+edit31.Text+''', '''+edit32.Text+''', '''+edit33.Text+''', '''+edit34.Text+''', '''+edit35.Text+''', '''+edit36.Text+''', '''+edit37.Text+''')');
data.isci.ExecSQL;

insert cümlecigi bu. ama alan adlarının olduğu satırda [Error] Unit11.pas(792): String literals may have at most 255 elements hatası veriyor
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
1) kodlarınızı code tagı içerisinde yazarsanız daha okunaklı olur.
2) verilen hata mesajının pradoxla alakalı olduğunu zannetmiyorum.
3)kodları şu şekilde deneyin.

Kod: Tümünü seç

data.isci.Close;
data.isci.SQL.Clear;
data.isci.SQL.Add('insert into iscicalisan');
data.isci.SQL.Add('(tckimlikno,Sigortasicilno,adisoyadi,dogumtarihi,isegiristarihi,');
data.isci.sql.add('yukumlukimse,primodemehali,isyerino,olaysaati,olayiscisayisi,');
data.isci.sql.add('yaptigi_is,olus_sekli,taniklar,ay1,ay2,ay3,ay4,gun1,gun2,gun3,
data.isci.sql.add('gun4,ucret1,ucret2,ucret3,ucret4,prim1,prim2,prim3,prim4,mah1,
data.isci.sql.add('mah2,mah3,mah4)');
data.isci.SQL.Add('values('''+edit15.Text+''', '''+edit10.Text+''', '''+edit9.Text+''', ''');
data.isci.sql.add(edit12.Text+''', '''+edit11.Text+''', '''+combobox3.Text+''', ''');
data.isci.sql.add(combobox4.Text+''', '''+edit102.Text+''', '''+edit13.Text+''', ''');
data.isci.sql.add(edit14.Text+''', '''+memo1.Text+''', '''+memo2.Text+''', '''+memo3.Text+''', ''');
data.isci.sql.add(edit18.Text+''','''+edit19.Text+''','''+edit20.Text+''', '''+edit21.Text+''', ''');
data.isci.sql.add(edit22.Text+''', '''+edit23.Text+''', '''+edit24.Text+''', '''+edit25.Text+''', ''');
data.isci.sql.add(edit26.Text+''', '''+edit27.Text+''', '''+edit28.Text+''', '''+edit29.Text+''', ''');
data.isci.sql.add(edit30.Text+''', '''+edit31.Text+''', '''+edit32.Text+''', '''+edit33.Text+''', ''');
data.isci.sql.add(edit34.Text+''', '''+edit35.Text+''', '''+edit36.Text+''', '''+edit37.Text+''')');
data.isci.ExecSQL;
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Sorun Delphi editörü ile ilgili.
Delphi içinde 255 karakterden uzun stringleri artı (+) ile bölerek yazmak gerekiyor. Yani:

St1 := 'aaaadfsdfsdfsdfsdfdsdfsfsfds' + 'dfdhgddhd' gibi.

İyi çalışmalar.
En son Hakan Can tarafından 22 May 2006 11:12 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

Mesaj gönderen aydogan46 »

Aslangeri hocam, çok teşekkür ederim. zahmet edip düzeltmişsiniz. tekrar teşekkürler sorun çözüldü
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Ayrıca SQL içinde parametre kullanmak da hem string i kısaltacak hem de daha derli toplu görünmesini sağlayacaktır :wink:

Kod: Tümünü seç

...
data.isci.SQL.Add('insert into iscicalisan');
data.isci.SQL.Add('(tckimlikno,Sigortasicilno,adisoyadi,dogumtarihi,isegiristarihi,');
data.isci.sql.add('yukumlukimse,primodemehali,isyerino,olaysaati,olayiscisayisi,');
data.isci.sql.add('yaptigi_is,olus_sekli,taniklar,ay1,ay2,ay3,ay4,gun1,gun2,gun3,
data.isci.sql.add('gun4,ucret1,ucret2,ucret3,ucret4,prim1,prim2,prim3,prim4,mah1,
data.isci.sql.add('mah2,mah3,mah4)');
data.isci.SQL.Add('values(');
data.isci.SQL.Add(':tckimlikno,:Sigortasicilno,:adisoyadi,:dogumtarihi,:isegiristarihi,');
...
data.isci.sql.add(':mah2,:mah3,:mah4)');
data.isci.ParamByName('tckimlikno').AsString := edit15.Text;
data.isci.ParamByName('Sigortasicilno').AsString := edit10.Text;
...
data.isci.ExecSQL;

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla