resim kayıt sorun

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim kayıt sorun

Mesaj gönderen erdogan_ozkaya »

Hocam sn bir soru,

aşağıdaki şek,ilde nasıl resmi kayıt edebilirim

Kod: Tümünü seç

 EVRAKLAR_DB.Close;
            EVRAKLAR_DB.SQL.Clear;
            EVRAKLAR_DB.SQL.Add(' INSERT INTO EVRAKLAR'
                                 +' (KAYIT_KIMLIK,'
                                 +' EVRAK_TIPI,'
                                 +' TURU,'
                                 +' ACIKLAMA,'
                                 +' SERI_NO,'
                                 +' GECERLILIK_TARIHI,'
                                 +' EKLEYEN,'
                                 +' CALISILAN_FIRMA,'
                                 +' ISLEM_TARIHI,'
                                 +' DOSYA_ADI,'
                                 +' DOSYA)');
            EVRAKLAR_DB.SQL.Add(' VALUES ('
                         +#39+KULLANICIPENCERE.QRY_KULLANICI_DBPERSONEL_KIMLIK.Text+#39+ ','
                         +#39+ComEVRAKTURU.Selected.Text+#39+ ','
                         +#39+'Personel Evrak'+#39+ ','
                         +#39+EditACIKLAMA.Text+#39+ ','
                         +#39+EditSERINO.Text+#39+ ','
                         +#39+FormatDateTime('yyyy-mm-dd', DateGECERLILIKTARIHI.Date) +#39+ ','
                         +#39+KULLANICIPENCERE.QRY_KULLANICI_DBADI.Text+' '+KULLANICIPENCERE.QRY_KULLANICI_DBADI.Text+#39+ ','
                         +#39+KULLANICIPENCERE.QRY_KULLANICI_DBCALISILAN_FIRMA_KIMLIK.Text+#39+ ','
                         +#39+FormatDateTime('yyyy-mm-dd', Date) +#39+ ','
                          +#39+'Kamera Çekimi'+#39+ ','
                         +#39+ RESIM  +#39+')') ;
                EVRAKLAR_DB.Execute;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: resim kayıt sorun

Mesaj gönderen ertank »

erdogan_ozkaya yazdı:Hocam sn bir soru,

aşağıdaki şek,ilde nasıl resmi kayıt edebilirim

Kod: Tümünü seç

 EVRAKLAR_DB.Close;
            EVRAKLAR_DB.SQL.Clear;
            EVRAKLAR_DB.SQL.Add(' INSERT INTO EVRAKLAR'
                                 +' (KAYIT_KIMLIK,'
                                 +' EVRAK_TIPI,'
                                 +' TURU,'
                                 +' ACIKLAMA,'
                                 +' SERI_NO,'
                                 +' GECERLILIK_TARIHI,'
                                 +' EKLEYEN,'
                                 +' CALISILAN_FIRMA,'
                                 +' ISLEM_TARIHI,'
                                 +' DOSYA_ADI,'
                                 +' DOSYA)');
            EVRAKLAR_DB.SQL.Add(' VALUES ('
                         +#39+KULLANICIPENCERE.QRY_KULLANICI_DBPERSONEL_KIMLIK.Text+#39+ ','
                         +#39+ComEVRAKTURU.Selected.Text+#39+ ','
                         +#39+'Personel Evrak'+#39+ ','
                         +#39+EditACIKLAMA.Text+#39+ ','
                         +#39+EditSERINO.Text+#39+ ','
                         +#39+FormatDateTime('yyyy-mm-dd', DateGECERLILIKTARIHI.Date) +#39+ ','
                         +#39+KULLANICIPENCERE.QRY_KULLANICI_DBADI.Text+' '+KULLANICIPENCERE.QRY_KULLANICI_DBADI.Text+#39+ ','
                         +#39+KULLANICIPENCERE.QRY_KULLANICI_DBCALISILAN_FIRMA_KIMLIK.Text+#39+ ','
                         +#39+FormatDateTime('yyyy-mm-dd', Date) +#39+ ','
                          +#39+'Kamera Çekimi'+#39+ ','
                         +#39+ RESIM  +#39+')') ;
                EVRAKLAR_DB.Execute;
Hangi Query bileşenini kullanıyorsunuz? TAdoQuery mi? Başka birşey mi?
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim kayıt sorun

Mesaj gönderen erdogan_ozkaya »

hocam aşağıdaki kod ile androidden resim çekip MSSQL ekleyebiliyorum, unidac bileşenini kullanıyorum.
sql tablosu " DOSYA, DOSYA_ADI, ACIKLAMA" diye gidiyor sadece dosyayı eklersem bir sıkıntı yok fakat dosya adı veya açıklama alanı girmek istediğimde "the code page 0 is not supported by the server unidac" böyle bir hata veriyor.

Kod: Tümünü seç

procedure SaveJpegToStream(Bitmap: TBitmap; Stream: TStream);
var
 Surf: TBitmapSurface;
 Params: TBitmapCodecSaveParams;
begin
 Params.Quality := 95;
 Surf := TBitmapSurface.Create;
 try
   Surf.Assign(Bitmap);
   if not TBitmapCodecManager.SaveToStream(Stream, Surf, '.jpg', @Params) then
     raise EBitmapSavingFailed.Create(SBitmapSavingFailed);
 finally
   Surf.Free;
 end;
end;

procedure TEVRAKKAYITPENCERE.Button3Click(Sender: TObject);
var
     buf, Stream: TMemoryStream;
     jpeg: TBitmap;
 begin 
          EVRAKLAR_DB.Append; 
          begin
            if not  EVRAKLAR_DB.Active then Exit();

            Stream := TMemoryStream.Create();
            try
              SaveJpegToStream(EVRAKRESIM.Bitmap, Stream);
              TBlobField(EVRAKLAR_DB.FieldByName('DOSYA')).LoadFromStream(Stream);
            finally
              Stream.Free();
            end;
          end;
          EVRAKLAR_DB.Post;
end;
 
aşağıdaki şekilde işlem yapınca kayıt yapıyor burada ise resim ekleyemiyorum özetle yukarıdaki kod ile aşağıdaki kodu nasıl birleştirebilirim ?

Kod: Tümünü seç

 
     EVRAKLAR_DB.Close;
     EVRAKLAR_DB.SQL.Clear;
     EVRAKLAR_DB.SQL.Add(' INSERT INTO EVRAKLAR'
                          +' (KAYIT_KIMLIK,'
                          +' EVRAK_TIPI,'
                          +' TURU,'
                          +' ACIKLAMA,'
                          +' SERI_NO,'
                          +' GECERLILIK_TARIHI,'
                          +' EKLEYEN,'
                          +' CALISILAN_FIRMA,'
                          +' ISLEM_TARIHI,'
                          +' DOSYA_ADI )');
     EVRAKLAR_DB.SQL.Add(' VALUES ('
                  +#39+Edit1.Text+#39+ ','
                  +#39+ComEVRAKTURU.Selected.Text+#39+ ','
                  +#39+'Personel Evrak'+#39+ ','
                  +#39+EditACIKLAMA.Text+#39+ ','
                  +#39+EditSERINO.Text+#39+ ','
                  +#39+  FormatDateTime('yyyy-mm-dd', DateGECERLILIKTARIHI.Date) +#39+ ','
                  +#39+'ERDOĞAN'+#39+ ','
                  +#39+Edit1.Text+#39+ ','
                  +#39+FormatDateTime('yyyy-mm-dd', Date) +#39+ ','
                  +#39+'Kamera Çekimi'+#39+')') ;
         EVRAKLAR_DB.Execute;
çok teşeekkür ederim
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: resim kayıt sorun

Mesaj gönderen ertank »

Eğer yanlış analamadı isem yapmak istediğiniz aşağıdaki gibi bir işlem.

Kod: Tümünü seç

uses
  FMX.Graphics,
  FMX.Surfaces,
  FMX.Types,
  FMX.Consts,
  DateUtils;

procedure SaveJpegToStream(Bitmap: TBitmap; Stream: TStream);
var
 Surf: TBitmapSurface;
 Params: TBitmapCodecSaveParams;
begin
 Params.Quality := 95;
 Surf := TBitmapSurface.Create;
 try
   Surf.Assign(Bitmap);
   if not TBitmapCodecManager.SaveToStream(Stream, Surf, '.jpg', @Params) then
     raise EBitmapSavingFailed.Create(SBitmapSavingFailed);
 finally
   Surf.Free;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Stream: TMemoryStream;
begin
   EVRAKLAR_DB.Close();
   EVRAKLAR_DB.SQL.Clear();
   EVRAKLAR_DB.SQL.Add('insert into evraklar(KAYIT_KIMLIK, EVRAK_TIPI, TURU, ACIKLAMA, SERI_NO, GECERLILIK_TARIHI, EKLEYEN, CALISILAN_FIRMA, ISLEM_TARIHI, DOSYA_ADI, DOSYA)');
   EVRAKLAR_DB.SQL.Add('VALUES (:KAYIT_KIMLIK, :EVRAK_TIPI, :TURU, :ACIKLAMA, :SERI_NO, :GECERLILIK_TARIHI, :EKLEYEN, :CALISILAN_FIRMA, :ISLEM_TARIHI, :DOSYA_ADI, :DOSYA)');
   EVRAKLAR_DB.ParamByName('KAYIT_KIMLIK').AsString        := Edit1.Text;
   EVRAKLAR_DB.ParamByName('EVRAK_TIPI').AsString          := ComEVRAKTURU.Selected.Text;
   EVRAKLAR_DB.ParamByName('TURU').AsString                := 'Personel Evrak';
   EVRAKLAR_DB.ParamByName('ACIKLAMA').AsString            := EditACIKLAMA.Text;
   EVRAKLAR_DB.ParamByName('SERI_NO').AsString             := EditSERINO.Text;
   EVRAKLAR_DB.ParamByName('GECERLILIK_TARIHI').AsDateTime := DateOf(DateGECERLILIKTARIHI.Date);
   EVRAKLAR_DB.ParamByName('EKLEYEN').AsString             := 'ERDOĞAN';
   EVRAKLAR_DB.ParamByName('CALISILAN_FIRMA').AsString     := Edit1.Text;
   EVRAKLAR_DB.ParamByName('ISLEM_TARIHI').AsDateTime      := Today();
   EVRAKLAR_DB.ParamByName('DOSYA_ADI').AsString           := 'Kamera Çekimi';

   Stream := TMemoryStream.Create();
   try
     SaveJpegToStream(EVRAKRESIM.Bitmap, Stream);
     EVRAKLAR_DB.ParamByName('DOSYA').LoadFromStream(Stream);
   finally
     Stream.Free();
   end;

   EVRAKLAR_DB.ExecSQL();
end;
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim kayıt sorun

Mesaj gönderen erdogan_ozkaya »

Hocam aynende bu gerçekten çok teşekkür ederim ama şu satırda hata veriyor

Kod: Tümünü seç

     EVRAKLAR_DB.ParamByName('DOSYA').LoadFromStream(Stream); burda hata veriyor
   //   TBlobField(EVRAKLAR_DB.FieldByName('DOSYA')).LoadFromStream(Stream); bunda çalışıyor ama eklemiyor
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: resim kayıt sorun

Mesaj gönderen erdogan_ozkaya »

hocam çok teşekkür ederim aşağıdaki gibi çalışıyor artık.

EVRAKLAR_DB.ParamByName('DOSYA').LoadFromStream(stream, ftBlob);
Cevapla