Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema con Stored Proc (parámetros?) (https://www.clubdelphi.com/foros/showthread.php?t=49892)

peccatum 02-11-2007 16:04:31

Problema con Stored Proc (parámetros?)
 
Hola! tengo el código para cargar los parámetros de un procedimiento almacenado y ejecutarlo de la siguiente forma (dentro del 'onClick' de un tbutton):

Código Delphi [-]
with MDOStoredProc1 do    
begin    
Params.Items[0].AsString := DBEdit20.Text;   
Params.Items[1].AsString := RXDBLookupCombo2.Text;  
Params.Items[2].AsString := DBEdit6.Text;  
Params.Items[3].AsString := DBEdit16.Text;  
Params.Items[4].asDate :=  DatetimePicker1.Date;  
Params.Items[5].AsTime := DatetimePicker2.Time; 
Params.Items[6].AsDate := DateTimePicker3.Date;   
Params.Items[7].AsTime := DateTimePicker4.Time;  
Params.Items[8].AsInteger := StrtoInt(DBEdit19.text);  
Params.Items[9].AsInteger := StrtoInt(Edit1.text);  
Params.Items[10].AsString := DBEdit11.Text;  
execProc; 
end


Cuando la aplicación se está ejecutando y presiono el botón me surge una excepción que dice: "arithmetic exception, numeric overflow or string truncation"...

algúno tiene idea cual puede ser el problema?

Gracias por la atención...

Ivanzinho 02-11-2007 16:34:35

Eso es debido a que estás pasando un string mayor al esperado, una división por cero, un valor muy alto a un entero, smallint, ....

Fijate en las variables de entrada del procedimiento y los valores que pasas como parámetros.

Un saúdo.

jhonny 02-11-2007 16:38:42

Este error se presenta generalmente cuando tratas de introducir un valor, cuya longitud de caracteres es mayor a la longitud de caracteres que admite el campo en la base de datos.

jhonny 02-11-2007 16:40:34

Jejeje, 3 Min de diferencia es bastante como para no haberlo visto, pero asi es... se me adelanto Ivanzinho y por goleada :D :D :D

peccatum 02-11-2007 17:02:43

Uno de los parámetros en la DB estaba definido como SmallInt, y yo le pasaba Int... lo arreglé pero me sigue dando el mismo error =(

jhonny 02-11-2007 17:16:49

Cita:

Empezado por peccatum (Mensaje 243060)
Uno de los parámetros en la DB estaba definido como SmallInt, y yo le pasaba Int... lo arreglé pero me sigue dando el mismo error =(

Sigue buscando irregularidades por ese estilo, cuando las arregles todas dejara de salirte el error ;).

Ivanzinho 02-11-2007 17:17:40

Tanto con integer como con smallint te debería funcionar igual siempre y cuando le pasases un valor entre –32.768 y 32.767.

Yo me inclinaría más bien por los string, que veo que pasas unos cuantos, fijate en los parametro de entrada del procedimiento, que los tendrás declarados como Varchar(X). Comprueba que esa X no sea menor que el número de caracteres de los valores que pasas. Revisa también las divisiones, en caso de que las tengas, que no se produzca ninguna división por cero.

Un saúdo.

Ivanzinho 02-11-2007 17:20:22

jhonny, veo que eres rencoroso y no esperaste nada para devolvérmela :D:D

Un saúdo.

peccatum 02-11-2007 17:44:07

Pues tenían razón nomás... era un campo que lo tenía definido con un tamaño erróneo...

Gracias y Gran saludo!!


La franja horaria es GMT +2. Ahora son las 08:58:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi