Ver Mensaje Individual
  #15  
Antiguo 08-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola angelvazv.

El error es de conversión, estás intentando asignar un valor de tipo Integer en una variable que puede almacenar el tipo string. Lamentablemente no pusiste la declaración de variables así que voy a tentar la suerte...

Te pongo un código un poco diferente, utilizando parámetros. Que a mi criterio, le otorga seguridad, claridad y simplicidad:
Código Delphi [-]
  with zquery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO empleado(numemp, nombre, apepat, apemat,');
    SQL.Add('direccion, telcasa, telcel, puesto, fechan, edad, fingreso)');
    SQL.Add('VALUES(:nemp, :nom, :paterno, :materno, :direc, :telca,');
    SQL.Add(':telcel, :pues, :nacim, :edad, :hoy)');
    ParamByName('nemp').AsInteger:= nemp;
    ParamByName('nom').AsString:= nom;
    ParamByName('paterno').AsString:= paterno;
    ParamByName('materno').AsString:= materno;
    ParamByName('direc').AsString:= direc;
    ParamByName('telca').AsString:= telca;
    ParamByName('telcel').AsString:= telcel;
    ParamByName('pues').AsString:= pues;
    ParamByName('nacim').AsString(nacim);
    ParamByName('edad').AsInteger:= edad;
    ParamByName('hoy').AsInteger:= hoy;
    ExecSQL
  end;
Si te fijas, en tres líneas usé AsInteger, sospecho que en esos casos estás asignando un Integer a un TStringField (pero podrían ser más).

Si declaras una variable de tipo Integer como por ejemplo nemp (creo que es integer), no podés asignarla a un campo de tipo TStringField sin hacer antes las conversiones necesarias.
Sin el uso de parámetros tendrías que hacer algo parecido a:
Código Delphi [-]
  zquery1.Close;
  zquery1.SQL.Clear;
  zquery1.SQL.Add('INSERT INTO empleado(numemp,nombre,apepat,apemat,direccion,telcasa,telcel,puesto,fechan,edad)');
  zquery1.SQL.Add('VALUES(' + QuotedStr(IntToStr(nemp)) + ',' + QuotedStr(nom) + ',' + QuotedStr(paterno) + ',' +
    QuotedStr(materno) + ',' + QuotedStr(direc) + ',' + QuotedStr(telca) + ',' + QuotedStr(telcel)+ ',' +
    QuotedStr(pues) + ',' + QuotedStr(nacim)  + ',' + QuotedStr(IntToStr(edad)) + ',' + QuotedStr(IntToStr(hoy)) + ')');
  zquery1.ExecSQL;
¨
Encerrando entre comillas y convirtiendo a cadena mediante la función correspondiente, a cada variable de tipo entera o flotante que utilices.

Como verás, es un código mucho más complejo, difícil de leer y propenso a errores.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 08-05-2012 a las 09:42:08.
Responder Con Cita