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)
-   -   Campo numerico asignación por texto (https://www.clubdelphi.com/foros/showthread.php?t=78215)

Facu 29-03-2012 22:12:28

Campo numerico asignación por texto
 
Hola, antes que nada buenas tardes a todos.
Paso a describir una tabla y les hago una consulta.

Tengo una Bd en Access, con 3 campos, Código (numerico) Nombre( Texto) Precio(moneda)
Intento ejecutar con un boton el siguiente código delphi:

Código Delphi [-]
var
  codigo:string;
  precionuevo:string;
  conver:real;
begin    
      codigo:= DataModule5.ADOQuery1.FieldValues['Código'];
      precionuevo:= Edit1.Text;
      conver:= StrToFloat(precionuevo);
      DataModule5.ADOQuery1.Close;
      DataModule5.ADOQuery1.SQL.Text:= 'UPDATE Herramientas Set Precio='  + '"' +
      precionuevo + '"' + 'WHERE Código =' + '"' + codigo + '"';
      DataModule5.ADOQuery1.ExecSQL;
end.

Mi problema es el siguiente: mi campo código en la tabla es integer, y si no la pongo de tipo texto en la tabla, es imposible meterle datos con una consulta, o por lo menos no encuentro la manera de meter un integer con una consulta ya que hay q meterlo a modo de texto, alguien me podria dar una solución?

Desde ya, Muchas Gracias por su tiempo, aunque solo lo lean.

ecfisa 29-03-2012 23:09:22

Hola Facu.

Probá de este modo:
Código Delphi [-]
var
  codigo:string;
  precionuevo:string;
  conver:real;
begin
  codigo:= ADOQuery1.FieldValues['Codigo'];
  precionuevo:= Edit1.Text;
  conver:= StrToFloat(precionuevo);
  with DataModule5.ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('UPDATE HERRAMIENTAS SET PRECIO= :PPRECIO ');
    SQL.Add('WHERE CODIGO = :PCODIGO');
    Parameters.ParamByName('PPRECIO').Value:= conver;
    Parameters.ParamByName('PCODIGO').Value:= codigo;
    ExecSQL
  end
end;

Saludos.

Facu 01-04-2012 22:30:39

Cita:

Empezado por ecfisa (Mensaje 428815)
Hola Facu.

Probá de este modo:
Código Delphi [-]
var
  codigo:string;
  precionuevo:string;
  conver:real;
begin
  codigo:= ADOQuery1.FieldValues['Codigo'];
  precionuevo:= Edit1.Text;
  conver:= StrToFloat(precionuevo);
  with DataModule5.ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('UPDATE HERRAMIENTAS SET PRECIO= :PPRECIO ');
    SQL.Add('WHERE CODIGO = :PCODIGO');
    Parameters.ParamByName('PPRECIO').Value:= conver;
    Parameters.ParamByName('PCODIGO').Value:= codigo;
    ExecSQL
  end
end;

Saludos.

Hola, me sigue tirando error en la compatibilidad de tipos, no se como solucionarlo

Casimiro Noteví 01-04-2012 23:02:16

Deberías poner exactamente el mensaje que te sale y en qué línea salta el error.

ecfisa 01-04-2012 23:20:42

Cita:

Empezado por Casimiro Notevi (Mensaje 429108)
Deberías poner exactamente el mensaje que te sale y en qué línea salta el error.

Totalmente de acuerdo.

Aunque ahora estoy sospechando de esta: :rolleyes:
Código Delphi [-]
   codigo:= ADOQuery1.FieldValues['Codigo'];

Saludos.


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

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