Yorumları: 858
Konuları: 35
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.731
Uzman
Gayet normal bir hata. Ben yazmış olsam bende hata verdiririm. Sorguda eşitliğe parametre ataması yapıyorsunuz, doğal olarak hangi alanı aramak isterseniz o alanın tipinde ve boyutunda veri girmenizi bekliyor, siz ad varchar(20) olarak tanıtırsanız :cad değişkenini de otomatik olarak varchar(20) olarak görüyor, buna gidip 25 karakterli bir değer girerseniz veri büyüklüğünü aşarsınız ve bu hatayı alırsınız.
Yorumları: 858
Konuları: 35
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.731
Uzman
siz :cad olarak bir parametre belirtiyorsunuz ama içeride, formun üzerine bir query koyup sorguyu bu query içine yazarsanız göreceksiniz ki query nin params kısmında yazdığınız :cad parametresi tanımlanmış olacaktır dolayısı ile query bu parametre ile aranacak alanın tip olarak karşılaştırmasını yapacaktır, veritabanında ad alanı 20 byte tanıtılmış ise cad parametresinide otomatik 20 byte tanıyacaktır, siz dışarıdan bu parametreye 21 byte veri gönderdiğinizde alan taşması diye hata verecektir.
Tabi siz query içinde ad='xxxxx' şeklinde 21 byte veri girdiğinizde neden hata vermemesine bişey diyemem, orda tanımlı alanın boyutu kadar veriyi alıp karşılaştırma yapıyor olabilir kalan fazlalığı kaale almıyordur belkide o konud bilgim yok, fakat php de mesela ad varchar(10) diyorsunuz ama 20 byte gönderiyosunuz o gidip ilk 10 byte ını kaydediyor, belkide veritabanlarının (veya SQL in) ortak özelliğidir bişi diyemem ona.
Yorumları: 150
Konuları: 17
Kayıt Tarihi: 01-08-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 495
Acemi
@
klavye parametre gönderdiğinde exec işleminden önce pre control yapıyor ve excepiton throw ediyor. Yani parametreli gönderimlerde parameter check yapılıyor. Fakat diğerinde parametre göndermediğin için parameter check yapılmıyor.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.