Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   "String or binary data would be truncated" (https://www.clubdelphi.com/foros/showthread.php?t=56440)

Gaim2205 17-05-2008 00:27:13

"String or binary data would be truncated"
 
Hola amigos del foro, estoy desarrollando en delphi 7. Mediante mi aplicación quiero insertar registros a una b.d. SQL Server 2000.

El código del insert dentro de mi ADOQuery es el siguiente:
Código SQL [-]
insert into incidencias_kp_1(compania, trabajador, incidencia_kp, 
fecha_incidencia,secuencia, referencia_01, referencia_02, referencia_03,
tra_compania, referencia_04, variable_01, variable_02, variable_03, 
variable_04, sit_incidencia) 
VALUES ('AIMC', '0000100001', 1001, :fecha, 1, :hrentrada, :hrsalida, :dia, 'PITK', :no_dia, 1, 0,
0, 0, 1)


Pero al tratar de ejecutar la sentencia obtengo el error "String or binary data would be truncated"... sé a lo que se refiere, y he verificado que ningun campo se pase de la longitud aceptada, creo que he identificado el campo. El problema está al tratar de insertar la fecha que en SQL Server esta definida como smalldatetime, not null.
Mi variable que quiero insertar ahi esta declarada en delphi como TDateTime. Pero aun asi tengo ese error. Alguna sugerencia para solucionarlo? Gracias...

BlueSteel 17-05-2008 01:07:01

Hola...

yo prefiero utilizar este sistema para insertar un registro en el SQL Server

Código Delphi [-]
     Datos.AQ_Orden.Close;
     Datos.AQ_Orden.SQL.Clear;
     Datos.AQ_Orden.SQL.Add('Insert Into Orden(Ord_Numero, Pro_Rut, Ord_Fecha, Ord_Solicitado, Ord_Atencion, Ord_FormaPago, Ord_Estado,Ord_Observacion, Ord_SubNeto, Ord_Descto, Ord_Neto, Ord_Iva, Ord_Total)');
     Datos.AQ_Orden.SQL.Add('Values (:v01, :v02, :v03, :v04, :v05, :v06, :v07, :v08, :v09, :v10, :v11, :v12, :v13)');
     Datos.AQ_Orden.Parameters[0].Value  := cNoc+1;
     Datos.AQ_Orden.Parameters[1].Value  := vRut.Text;
     Datos.AQ_Orden.Parameters[2].Value  := vFec.Date;
     Datos.AQ_Orden.Parameters[3].Value  := vSol.Text;
     Datos.AQ_Orden.Parameters[4].Value  := vAte.Text;
     Datos.AQ_Orden.Parameters[5].Value  := CB_Forma.ItemIndex;
     Datos.AQ_Orden.Parameters[6].Value  := 'E';
     Datos.AQ_Orden.Parameters[7].Value  := vObs.Text;
     Datos.AQ_Orden.Parameters[8].Value  := vTot_Bru.AsCurrency;
     Datos.AQ_Orden.Parameters[9].Value  := vTot_Des.AsCurrency;
     Datos.AQ_Orden.Parameters[10].Value := vTot_Net.AsCurrency;
     Datos.AQ_Orden.Parameters[11].Value := vTot_Iva.AsCurrency;
     Datos.AQ_Orden.Parameters[12].Value := vTot_Fin.AsCurrency;
     Datos.AQ_Orden.ExecSQL;

Asi me evito los problemas, y en el caso de existir, los puedo identificar de una mejor forma

Salu2:p:D

droguerman 17-05-2008 14:32:40

una forma de pasar fechas es en el siguiente formato asi te evitas problemas:

yyyymmdd

por ejemplo si vas a ingresar 5 de octubre del 2008 tienes que pasar el valor: 20081005


saludos


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

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