Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Insertar una imagen a la BD (https://www.clubdelphi.com/foros/showthread.php?t=95292)

kainchu3102 17-07-2021 19:07:59

Insertar una imagen a la BD
 
Buenas gente! necesito ayuda no puedo insertar una imagen a la base datos:
Tengo este codigo pero me este error:
[dcc32 Warning] Fabmturnos.pas(472): W1050 WideChar reduced to byte char in set expressions. Consider using 'CharInSet' function in 'SysUtils' unit.
En esta linea:
Código Delphi [-]
params.ParamByName('IMA_TUR').LoadFromStream(AStream,ftblob);

Este es el codigo:
Código Delphi [-]
procedure TFORMABMTURNOS.BTBA_TURClick(Sender: TObject);
var
AStream : TMemoryStream;
begin

BitBtn4.Click;

 if (EditAP_TU.Text <> '') and (EditNO_TU.Text <> '') and (EditDO_TU.Text <> '') and (EditTI_TU.Text <> '') and (EditCO_TU.Text <> '')then
   begin

     with DataModule1.FDQINSERT_TUR do
     begin
       Params.ParamByName('FEC_TUR').AsDate := DateTimePicker1.Date;;
       Params.ParamByName('HOR_TUR').AsTime := DateTimePicker2.Time;
       Params.ParamByName('DNI_TUR').AsInteger := StrToInt(EditDO_TU.Text);
       Params.ParamByName('APE_TUR').AsString := EditAP_TU.Text;
       Params.ParamByName('NOM_TUR').AsString := EditNO_TU.Text;
       Params.ParamByName('EDA_TUR').AsString := EditED_TU.Text;
       Params.ParamByName('OBR_TUR').AsString := COBOX1.Text;
       Params.ParamByName('MED_TUR').AsString := COBOX2.Text;
       Params.ParamByName('COD_TUR').AsInteger := StrToInt(EditCO_TU.Text);
       Params.ParamByName('TIP_TUR').AsString := EditTI_TU.Text;
       Params.ParamByName('COS_TUR').AsFloat := StrToFloat(EditCOS_TU.Text);
       Params.ParamByName('ABO_TUR').AsFloat := StrToFloat(EditAB_TU.Text);
       Params.ParamByName('SAL_TUR').AsFloat := StrToFloat(EditSA_TU.Text);
       Params.ParamByName('TOT_TUR').AsFloat := StrToFloat(EditTO_TU.Text);
       Params.ParamByName('EMP_TUR').AsString := FORMPRINCIPAL.Label5.Caption;
       AStream := TMemoryStream.Create;
       Image1.Picture.Graphic.SaveToStream(AStream);
       AStream.Position := 0;
       params.ParamByName('IMA_TUR').LoadFromStream(AStream,ftblob);
       //Params.ParamByName('EMP_TUR').AsString := FORMPRINCIPAL.Label3.Caption;
       Params.ParamByName('ASI_TUR').AsString := 'SI';

       ExecSQL;

       if RowsAffected = 1 then
       begin
         DataModule1.FDTTURNOS.Refresh;

         FORMTURNOS.RadioButton1.Checked := false;
         FORMTURNOS.RadioButton1.Checked := True;

         ShowMessage('EL TURNO FUE AGREGADO CON EXITO!.');

ecfisa 17-07-2021 19:50:16

Hola.

Lo que mencionas no es un error, es una advertencia que te aconseja usar la función CharInSet y no pareciera tener que ver con el problema que mencionas. ¿ No aparece ningún mensaje de error además de esta advertencia ?

Por otro lado: ¿ Que base de datos estas usando ?, ¿ Que componentes usas para la conexión ?

Saludos :)

Pd: Recuerda usar las etiquetas DELPHI cuando incluyas código en tus mensajes.

kainchu3102 17-07-2021 20:59:00

hola
 
Estoy usando base datos mysql Workbench y Fdconection en en Data module

kainchu3102 17-07-2021 21:08:05

....
 
1 Archivos Adjunto(s)
Despues tengo otro codigo pero directamente me tira este mensajeArchivo Adjunto 3921





despues tengo este otro codigo donde me tira ese error:
Código Delphi [-]
var
jp : TJPEGimage;
begin
 jp :=TJPEGimage.Create;
 jp.LoadFromFile(opendialog1.FileName);
  //Timage.Picture.Assign(Jp);
BitBtn4.Click;

 if (EditAP_TU.Text <> '') and (EditNO_TU.Text <> '') and (EditDO_TU.Text <> '') and (EditTI_TU.Text <> '') and (EditCO_TU.Text <> '')then
   begin

     with DataModule1.FDQINSERT_TUR do
     begin
       Params.ParamByName('FEC_TUR').AsDate := DateTimePicker1.Date;;
       Params.ParamByName('HOR_TUR').AsTime := DateTimePicker2.Time;
       Params.ParamByName('DNI_TUR').AsInteger := StrToInt(EditDO_TU.Text);
       Params.ParamByName('APE_TUR').AsString := EditAP_TU.Text;
       Params.ParamByName('NOM_TUR').AsString := EditNO_TU.Text;
       Params.ParamByName('EDA_TUR').AsString := EditED_TU.Text;
       Params.ParamByName('OBR_TUR').AsString := COBOX1.Text;
       Params.ParamByName('MED_TUR').AsString := COBOX2.Text;
       Params.ParamByName('COD_TUR').AsInteger := StrToInt(EditCO_TU.Text);
       Params.ParamByName('TIP_TUR').AsString := EditTI_TU.Text;
       Params.ParamByName('COS_TUR').AsFloat := StrToFloat(EditCOS_TU.Text);
       Params.ParamByName('ABO_TUR').AsFloat := StrToFloat(EditAB_TU.Text);
       Params.ParamByName('SAL_TUR').AsFloat := StrToFloat(EditSA_TU.Text);
       Params.ParamByName('TOT_TUR').AsFloat := StrToFloat(EditTO_TU.Text);
       Params.ParamByName('EMP_TUR').AsString := FORMPRINCIPAL.Label5.Caption;

       params.ParamByName('IMA_TUR').AsSign(jp);
       //Params.ParamByName('EMP_TUR').AsString := FORMPRINCIPAL.Label3.Caption;
       Params.ParamByName('ASI_TUR').AsString := 'SI';

       ExecSQL;

       if RowsAffected = 1 then
       begin
         DataModule1.FDTTURNOS.Refresh;

kurono 18-07-2021 05:05:56

¿que tipo de datos declaraste en la base de datos para guardar la imagen? para guardar imagen o otro tipo de archivo los campo deben declarase como BLOB yo siempre lo hago con este codigo


Código Delphi [-]
// De archivo en disco a campo BLOB

TBlobField(ADOTable1.FieldByName('pdf')).LoadFromFile('archivo.pdf');

// De campo BLOB a archivo en disco

TBlobField(ADOTable1.FieldByName('pdf')).SaveToFile('archivo.pdf');


La franja horaria es GMT +2. Ahora son las 12:35:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi