C# Firebird (String Truncation)
-
C# daki bi projede veritabanındaki bi prosedure parametre göndererek insert etmeye kalktığımda bu hatayi alıyorum:
An unhandled exception of type 'FirebirdSql.Data.FirebirdClient.FbException' occurred in FirebirdSql.Data.FirebirdClient.dll
Additional information: arithmetic exception, numeric overflow, or string truncation
Proje :
FbConnection Baglanti = Bag.ac();
FbCommand komut = new FbCommand("INSERTURUN",Baglanti);
komut.CommandType = CommandType.StoredProcedure;
komut.Parameters.Add("@AURUNID", FbDbType.VarChar,5).Value = txtUrunKodu.Text;
MessageBox.Show(txtUrunKodu.Text);
komut.Parameters.Add("@AURUNADI",DBNull.Value);
komut.Parameters.Add("@AURUNTIPIID",DBNull.Value);
komut.Parameters.Add("@ATAKIPBIRIMI",DBNull.Value);
komut.Parameters.Add("@AFIYATI", DBNull.Value);
komut.Parameters.Add("@ADOVIZID", DBNull.Value);
komut.ExecuteNonQuery();
MessageBox.Show("Kayit Başarılı");
temizle();
Baglanti.Close();
Procedure :
create or alter procedure INSERTURUN (
ADOVIZID varchar(7),
AFIYATI numeric(15,2),
ATAKIPBIRIMI varchar(20),
AURUNADI varchar(50),
AURUNTIPIID integer,
AURUNID varchar(10))
as
declare variable DBDEKIURUNID varchar(10);
begin
Select URUNler.urunid from urunler where urunid = :AURUNID into :DBDEKIURUNID;
if (dbdekiurunid is not null) then
begin
update urunler set urunler.urunadi= :AURUNADI,urunler.uruntipiid=:AURUNTIPIID,
urunler.takipbirimi=:ATAKIPBIRIMI,urunler.fiyati=:afiyati,urunler.dovizid=:ADOVIZID
where urunler.urunid=:aurunid;
end
else
begin
insert into URUNLER(URUNID,URUNADI,URUNTIPIID,TAKIPBIRIMI,FIYATI,DOVIZID)
values(:AURUNID,:AURUNADI,:auruntipiid,:ATAKIPBIRIMI,:AFIYATI,:ADOVIZID);
suspend;
end
/* Procedure Text */
end^
Not: URUNID i 4 karakter girince insert ediyo 5 girince patlıyor.
-
Not = Sorunu çözdüm fakat çok saçma geldi precedure yolladığım parametre ismini baz almıyormuş parametrenin index değeriyle eşleştirme yapıyomuş