Paradox_JvDBImage ve jpeg kayıt

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

İmkansız bir yerde hata yapıyorsun Resmi bu şekilde muhakkak kaydetmesi lazım Tablonu kontrol et ..ben Paradox da daha yeni denedim kaydediyor.JvDBImagenin DataField 'i tanımlımı? veya kontrol et Türkçe harf'mi kullandın? bir yerde hata var...mesela ben Blob alanı DataField'ini "RESIM" diye büyük harflerle tanımladım.Datasource:DataSource1 .Verdiğim kod'larıda yazıyorum problemsiz kaydediyor.(Alpha tanımlı alanlar kaydediyorsa ,Tablonun Blob Alanını(OLE) ve JvDBImageyi kontrol et hata bu ikilide.....)
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

eger ibdataset kullanıpta gerekli sqlleri (insert,update,..) üretmez yada yamaz iseniz kaydetmeyebilir...
resim degilde normal bir kayıt kaydedebiliyormusunuz, once bunun testini yapın...
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

gkimirti ve HBV
IBdataset kullanmıyorum.denemek amaçlı formumda

1 adet tablo
1 adet dataset
tablomda iki alan var birincisi cevap alpha type ikincisi RESIM ole type
jvdbimage resim alanına datasorurcesi ile tanımlı
3 adet buton (append; post; delete;)
kodları şöyle

procedure TForm1.Button1Click(Sender: TObject);
begin
table1.Append;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
deg:integer;
begin
deg:=Application.MessageBox('KAYDETMEK iSTiYORMUSUNUZ?','KAYDET',MB_YesNO);
if deg=mrYes Then
begin
if table1.State in [dsInsert, dsEdit] then
table1.Post;
ShowMessage('KART KAYDEDiLDi');
end
else
ShowMessage('KAYIT iSLEMi iPTAL');
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
table1.Delete;
end;

DBImage1 ın clıck olayı ile resmi getiriyorum (uses te jpeg tanımlı)

procedure TForm1.DBImage1Click(Sender: TObject);
var
yol:AnsiString;
begin
OpenPictureDialog1.Title:='Resim Seç';
OpenPictureDialog1.Filter:='JPEG Dosyalari|*.jpg|ico Dosyalari|*.ico|Bmp Dosyalari|*.bmp';
if OpenPictureDialog1.Execute Then
begin
yol:=OpenPictureDialog1.FileName;
table1.Edit;//değişme moduna al
JvDBImage1.Picture.LoadFromFile(yol);
end;
end;

bütün datasetler bir biri ile bağlantılı ama hata değişmiyor.tabloyu kaldırıp yeniden yaptım.(basit bir proje üzerinden deneme yapıyorum zaten).Nasıl olmaz anlamıyorum :roll: herhalde benim delphi bozuk :D .daha önce 50-60 kişinin verilerini tutacak personel programı yapmıştım orda resimleri bmp olarak alabiliyorum orada sorunsuz çalışıyor.Anlamadım gitti bu işi :oops:

bir şey daha eklemek istiyorum sabrınız için teşekkür ederek ben opendialog ile direkt bilgisayarımdaki bir jpeg resmini çağırtıyorum acaba burda mı bir hata yapıyorum.Yani bmp resimlerini çağırtıp kod bu bmp yi jpeg olarak zaten çeviriyormu.eğer çeviriyorsa parantez içinde belirtiyorum jpeg boutlarındamı kaydeder.

eğer basit bir projeyi bana mail olarak atmak isteyen olursa mail adresim haydaryuceloglu@hotmail.com
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Yukardaki Kodlarla Veritabanına ,Jpeg Resmi Jpeg,.Bmp Resmi de Bmp olarak olarak kaydedersin?


Size Şimdi Paradoxda yaptığım(Yine Tavsiyem Firebird) bir deneme Resim kaydet formu gönderiyorum.(Zip'li)kendine göre düzenle
iyi çalışmalar.
Tıkır Tıkır Çalışıyor..........
En son HBV tarafından 12 Nis 2006 09:51 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Slm e-mail adresin kabul etmiyor kontrol et.........



............................................................

Mynet'ten gönderdim zip dosyaları ordan alabilirsin....
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

sayın türkelinin verdiği kodlarlar aşağıda öncelikle kendisine çok teşekkür ediyorum.bu kodlar çalışıyor

ilgilenecek arkadaşlar için yazıyorum

uses jpeg tanımlı olacak ben jedi yi kullandım image için

paradox tablosundaki imagenin type ayarı OLE olacak ve gerisi

procedure TForm1.BitBtn3Click(Sender: TObject);
var
yol:AnsiString;
begin
if MessageDlg('Yeni Kayit Acmak istiyormusunuz?', mtWarning, [mbOK, mbCancel], 0) = mrOK then
begin
try
Table1.Append;
except
ShowMessage('YENi KAYIT EKLERKEN HATA OLUSTU TEKRAR DENEYiNiZ');
end;
OpenPictureDialog1.Title:='Resim Seç';
OpenPictureDialog1.Filter:='JPEG Dosyalari|*.jpg|ico Dosyalari|*.ico|Bmp Dosyalari|*.bmp';
if OpenPictureDialog1.Execute Then
begin
yol:=OpenPictureDialog1.FileName;
Table1.Edit;//değişme moduna al
JvDBImage1.Picture.LoadFromFile(yol);
end;
end;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var
deg:integer;
begin
deg:=Application.MessageBox('KAYDETMEK iSTiYORMUSUNUZ?','KAYDET',MB_YesNO);
if deg=mrYes Then
begin
if Table1.State in [dsInsert, dsEdit] then
Table1.Post;
ShowMessage('KART KAYDEDiLDi');
end
else
ShowMessage('KAYIT iSLEMi iPTAL');
end;

ben bunu becerebildiysem herkez yapabilir.ilgilenen herkeze çok ama çok teşekkür ediyorum.

şimdi sıra firebird de :D birazda orda cebelleşeli 8)
denizfatihi

Re: Paradox_JvDBImage ve jpeg kayıt

Mesaj gönderen denizfatihi »

Merhaba,

Kullandığım veritabanı ms sql aşağıdaki kod ile JPEG resimleri BMP formatına çevirip veri tabanına kayıt etmeye çalışıyorum çevirme olayında sıkıntı yok, kayıt kısmında hata vermediği için hata notunu da yazamadım kullandığım kod aşağıdaki gibi kodun neresi hatalı olabilir ?

Kod: Tümünü seç

procedure TForm1.DBImage1Click(Sender: TObject);
var
 yol:AnsiString;
 s : string;
 Jpg: TJPEGImage;
 Bmp: TBitmap;
begin
  OpenDialog1.DefaultExt := '.jpg';
  OpenDialog1.Filter := 'jpeg (*.jpg)|*.jpg';
  OpenDialog1.Options := [ofOverwritePrompt, ofFileMustExist, ofHideReadOnly ];
  if OpenDialog1.Execute then
  begin
   Jpg := TJPEGImage.Create;
    try
      jpg.Loadfromfile(OpenDialog1.FileName);
      s:= ChangeFileExt(OpenDialog1.FileName,'.BMP');
      Image1.Center := True;
      Image1.Width := 180; //200;
      Image1.Height := 210; //240;
      Image1.Canvas.Draw(0,0,Icon);
      image1.left:=(form1.width-image1.width) div 2;
      image1.top:=(form1.height-image1.height) div 2;
      Image1.Canvas.Draw(200,240,jpg);
      Image1.Picture.SaveToFile(s);
    finally
      jpg.Free;
      bmp.Free;
      DataModule2.Tb_Resim.Edit; //değişme moduna al
      DBImage1.Picture.LoadFromFile(yol);
 
Cevapla