MySQL 5.0 Alan Boyu Aşımı Hatası

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

MySQL 5.0 Alan Boyu Aşımı Hatası

Mesaj gönderen vkamadan »

Merhaba,
Tablodaki alan VARCHAR (5) ,

MySQL 5.0 kullanıyorum 4.0.18 de bu gibi bir hata yoktu , sorun şu ki ;

Eğer,

Kod: Tümünü seç

query1.Append;
query1.FieldByName('ALanadi').asstring:='ABCDEFG';
query1.Post;
Şeklinde kullanırsam sorun yok tabloya sadece 'ABCDE' kadarı kaydoluyor, ancak

Kod: Tümünü seç

with query1 do
begin
close;
sql.clear;
sql.add (INSERT INTO tabloadi (alan) VALUES (:alan));
ParamByName('alan').asstring:='ABCDEFG';
ExecSQL;
end;
şeklinde kullandığımda 'Data too long' hatası alıyorum.
Mantık olarak yettiği kadarını kaydedip kalanı dikkate almaması gerekli değilmi önceden olduğu gibi.
Volkan KAMADAN
www.polisoft.com.tr
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;

Mysql tam bilmemekle birlikte MSSQL de bu 2000 den bu yana olan birşey yani. ExecSQL ile yaptığımız zaman hata alıyoruz. Sanırım mysql yeni versiyonundada bunu böyle düşünmüşler. :roll:

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]
_________________
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Üstteki örnekte sanırım DataSet maksimum alan boyutunu alıyor. Sen fazla bir değer atasan da fazlasını keserek atama yapıyor. Diğerinde ise böyle bir kontrol olmadan taşan bir veriyi atmaya çalışıyorsun. Alan tipi VARCHAR sa burada da itiraz etmemesi lazım. Sabit uzunluksa normal. :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Evet dataset üzerinden gittiğimde kendisi kısıyor, ancak asıl öğrenmek istediğim MySQL 4.0.18 de bu kontrol yokken 5.0 var, my.ini den yada başka bir yerden parametre alarak değiştirilebilen bir özelliklimidir acaba bu taşmalarda hata ver yada sığdığı kadarını kaydet onu merak ediyorum.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Alan tipi ne acaba? tablonun DDL ini yapıştırır mısın?
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Recep abi Alan tipim VARCHAR , uzunluğu 5
Ben örnek olsun die yazmıştım 200 e yakın tablom var hepsinde aynı sorun var mysql 4 ten 5 e geçtim patladı her taraf :roll:
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

CHAR da sabit VARCHAR da değişken uzunluk olmalı aslında :roll:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Bu demek oluyorki her tarafta alan boylarına çok dikkat etmem gerekecek VT nin yaptığı kontrolleri biz yapıcak hayırlısı olsun bakalım.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Beki bu alanlara SQLLite veya phpMyAdmin ile bilgi girerken bir sıkıntı oluyo mu? Birde ZEOS ve benzeri MySQL bileşen takımı ile denesen :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Abi dışarıdan bir editörler girerken oda maksimum girişe kadar izin veriyor fazla yazamıyorum editöre, ayrıca MyDAC componentlerini kullanıyorum, INSERT INTO ile kayıtta ne yaparsam yapayım patlıyor zaten bunun çözümü mysql server ın kendi üzerinde varsa vardır yani ayarlarında felan bizim erişimlerimizle ilgili bir konu değil anladığım kadarıyla
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Aynı hata MSSQL'de de geliyor. Galiba yeni Mysql için de aynı şekilde tasarım yapılmış.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

m$ mikisoft el atıysa iflah etmez artık :roll: :?
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

rsimsek yazdı:m$ mikisoft el atıysa iflah etmez artık :roll: :?
Yok onların el atmış olacağını ima etmemiştim. Sadece tasarım olarak aynı şekilde mantık kurulmuş olduğunu söyledim di. Bir karakter alana insert into ile alandan daha uzun bir bilgi eklenirken MSSQL'de de bu şekilde hata geliyor. Buna dayanarak böyle dedim.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

iyi çalışmalar;
buces bbs'ten Elico yazmış aynen iletiyorum:
SQL_MODE diye bir config parametresi geliyor 5.0'da. o mode degerinden
ayarlayabiliyorsun sql'lerin bu durumlarda hata verip vermemesini.
normalde mysql hata vermezdi 5 karakterlik alana 7 karakterlik string eklerken. hatasiz 5 karakterini ekleyip gecerdi. 5.0'da bu tur
seyler sql_mode parametresine baglandi, en kucuk hatalarda bile hata verip vermemesi ayarlanabiliyor.
İmam Süleyman Yakub <==> Molla Mustafa Mansur
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

ahmet_sinav yazdı:iyi çalışmalar;
buces bbs'ten Elico yazmış aynen iletiyorum:
SQL_MODE diye bir config parametresi geliyor 5.0'da. o mode degerinden
ayarlayabiliyorsun sql'lerin bu durumlarda hata verip vermemesini.
normalde mysql hata vermezdi 5 karakterlik alana 7 karakterlik string eklerken. hatasiz 5 karakterini ekleyip gecerdi. 5.0'da bu tur
seyler sql_mode parametresine baglandi, en kucuk hatalarda bile hata verip vermemesi ayarlanabiliyor.
Çok teşekkürler SQL_MODE parametresinin alacağı değerleri araştırayım ozaman sonucu buraya yazayım.
Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla