Ver Mensaje Individual
  #3  
Antiguo 02-06-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.281
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Bant Ver Mensaje
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);';
// Asignar parámetros
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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita