Cita:
Empezado por Bant
Este código se ejecuta al presionar un boton, el error me lo da después del ExecSQL; Me dice:
'There are fewer columns in the INSERT Statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.'
Lo cual no lo pillo si especifico el numero de datos que introduzco y solo pongo esos valores por que me ha salido esto? Además cuando lo intente con QuotedStr me dio error que no se puede convertir de tipo varchar a numeric, claro está pero no me salia este No entiendo
|
A veces este error pasa cuando uno de los parámetros incluye una coma decimal (no se si es tu caso). Eso hace que la SQL final tenga más parámetros de los esperados.
En estos casos lo mejor es utilizar parámetros:
Código Delphi
[-]
dm2.ADOTotal.Active := False;
dm2.ADOTotal.Close;
dm2.ADOTotal.SQL.Text := 'insert into FacturaTotal(ID, Cantidad, Subtotales, ITBIS, Total) values (:IDE, :PRODUCTOS, :SUBTOITAL, :ITBIS, :TOTALES);';
dm2.ADOTotal.Parametres.ParamByName('IDE').Value := Ide;
dm2.ADOTotal.Parametres.ParamByName('PRODUCTOS').Value := Productos;
...
dm2.ADOTotal.Parametres.ParamByName('TOTALES').Value := totales;
dm2.ADOTotal.ExecSQL;
dm2.ADOTotal.Active := True;
De esta forma te olvidas de los separadores, de las comas,...
Ya se encargará el sistema de colocar cada cosa con su formato para que funcione.
NOTA: Te he puesto el código de memoria.