Ver Mensaje Individual
  #6  
Antiguo 24-02-2008
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Reputación: 21
rafita Va por buen camino
Hola, yo pondría algo así:

Código:
 
var Consulta : String;
begin
  Consulta:'INSERT INTO remision (clave, producto, preciov, preciou) VALUES (:clave, :producto, :preciov, :preciou)';
  Remision.SQL.Clear;
  Remision.SQL.Add(Consulta);
  Remision.Parameters.Parambyname('Clave').Value := DProductos.Fields[0].AsString;
  Remision.Parameters.Parambyname('Producto').Value := DProductos.Fields[1].AsString;
  Remision.Parameters.Parambyname('PrecioV').Value := DProductos.Fields[4].AsString;
  Remision.Parameters.Parambyname('PrecioU').Value := DProductos.Fields[5].AsString;

  Remision.ExecSql; // Remision.Open; es para hacer una consulta, tienes que poner EXECSQL para hacer un Insert/update/delete
end;
Ahora mismo no recuerdo la sintaxis correcta para pasar los parámetros, creo que con ADO es como te lo he puesto Remision.Parameters.ParamByName, pero con BDE es Remision.Params.... De todas formas la ayuda de Delphi te lo va dando.

Y otra cosa, suponiendo que DProductos sea una query, yo me referiría a los datos de esta forma:
Código:
  Remision.Parameters.Parambyname('PrecioU').Value := DProductos.FieldByName('PrecioU').AsString;
De esta forma no dependes del orden de los campos en la consulta, sino del nombre del campo, que normalmente será el mismo en la consulta que en la tabla.

Espero haberte ayudado algo,
un saludo
__________________
Rafita.
Responder Con Cita