Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
unidac image insert sorunu
#1
Arkadaşlar 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.
 
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 ?
      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;

teşekkürler
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#2
işine yarayan arkadaş olabilir,

aşağıdaki şekilde çalışıyor.

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.Button1Click(Sender: TObject);
var
 Stream: TMemoryStream;
begin

  EVRAKLAR_DB.Close;
  EVRAKLAR_DB.SQL.Clear;
  EVRAKLAR_DB.SQL.Add('SELECT * from EVRAKLAR  WHERE 1=2');
   //KULLANICIPENCERE.QRY_KULLANICI_DB.Post;.SQL.Add(' SELECT * from PERSONEL_BILGILERI WHERE TC_NO='+QuotedStr(TC_NO_TEXT.Text));
  EVRAKLAR_DB.Open;



  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        := KULLANICIPENCERE.QRY_KULLANICI_DBPERSONEL_KIMLIK.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             := KULLANICIPENCERE.QRY_KULLANICI_DBADI.Text+' '+KULLANICIPENCERE.QRY_KULLANICI_DBADI.Text;
  EVRAKLAR_DB.ParamByName('CALISILAN_FIRMA').AsString     := KULLANICIPENCERE.QRY_KULLANICI_DBCALISILAN_FIRMA_KIMLIK.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, ftBlob);
  //   TBlobField(EVRAKLAR_DB.FieldByName('DOSYA')).LoadFromStream(Stream);
  finally
    Stream.Free();
  end;

  EVRAKLAR_DB.ExecSQL();
end;
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 10.3 Android Servis Çalışma Sorunu Halil Han Badem 8 1.094 1 saat önce
Son Yorum: malitutuncu
  Android read_contacts izini sorunu [COZULDU] codder71 3 188 25-09-2019, Saat: 22:32
Son Yorum: codder71
  Corner buton üzerinde image run time da görünmüyor 41linea41 1 104 20-09-2019, Saat: 08:37
Son Yorum: hi_selamlar
  ClientDataSet image field yükleme (DataSnap) 41linea41 3 301 22-07-2019, Saat: 08:13
Son Yorum: Fesih ARSLAN
  Resimi spinner yada image combo box da gösterme 41linea41 1 163 18-07-2019, Saat: 21:28
Son Yorum: narkotik



Konuyu Okuyanlar: 1 Ziyaretçi