Hola keine1lust.
Primero que nada te agradezco que hayas compartido tu código
Siempre que sea posible, es aconsejable el uso de parámetros, entonces mi sugerencia es: Tratar de parametrizar todas las inserciones.
No he usado los componentes
Zeos, aunque tengo entendido que son similares a los
IBX, basándome en eso, con un
TIBQuery lo haría de este modo:
Código Delphi
[-]
var
MS: TMemoryStream;
begin
...
with sqlejecuta do
begin
Connection:= Conexion;
Close;
SQL.Clear;
SQL.Add('INSERT INTO PERSONAL(CEDULA,NOM_COMP,DIRECCION,TELF_MOVIL,');
SQL.Add('TLF_LOCAL,CARGO,FOTO,DEPARTAMENTO_IDDEPART,');
SQL.Add('PARAMETRO_IDPARAMETRO,TIP_EMPLEADO_IDTIP_EMP,ID_USER)');
SQL.Add('VALUES(:CEDULA,:NOM_COMP,:DIRECC,:MOVIL,:FIJO,:CARGO,');
SQL.Add(':FOTO,:DEPTO_ID,:PARAM_ID,:TIP_EMPL,:USER_ID)');
ParamByName('CEDULA').AsString:= mcedula;
ParamByName('NOM_COMP').AsString:= mnom_comp;
ParamByName('DIRECC').AsString:= mdireccion;
ParamByName('MOVIL').AsString:= mtelf_movil;
ParamByName('FIJO').AsString:= mtlf_local;
ParamByName('CARGO').AsString:= mcargo;
ParamByName('DEPTO_ID').AsString:= middepart;
ParamByName('PARAM_ID').AsString:= midparametro;
ParamByName('TIP_EMPL').AsString:= midtip_emp;
ParamByName('USER_ID').AsString:= tid_user;
MS:= TMemoryStream.Create;
try
Image1.Picture.Bitmap.SaveToStream(MS);
MS.Position:= 0;
ParamByName('FOTO').LoadFromStream(MS, ftBlob);
finally
MS.Free;
end;
ExecSQL;
...
De este modo funciona correctamente (con
IBX), ojalá sea igual para
Zeos y la sugerencia te resulte útil.
Saludos
