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