Sql 2000 veri tabanı kullanıyorum. Adoquerey ve adoconnection ile veri tabanına bağlanıyorum. personel programı hazırlıyorum.Adoquerinin SQL string list editorüne select * from personel yazmak suretiyle tüm kayıtları veri tabanından çekiyorum . ancak veri tabanına fotoları kaydettiğim için ağ üzerinde program çok ağır çalışmaya başladı. where ile ilgili personelin kayıtlarını çekip görüntülereme yada kaydetme yapmak istiyorum. daha önce dbedit yada dbcombobox lar ile bağlantı yaptım. Adoquery ve dataset ile bağlantıları yaptım. fotograflarıda dbimage ile kaydettim.
1- bağlantıları dbedit yerine edit kullanarak mı yapmam gerekiyor. Eğer böyle yapacaksam nasıl yapmam gerektiği konusunda detaylı anlatım yapabilirmisiniz.
2- fotografları dbimage olmadan ve adoqueriye çekmeden nasıl okutabilirim. yada kaydedebilirim.
formda aradım ancak yeterli bilgiyi tam bulamadım. Lütfen yardımcı olursanız çok memnun olacağım. Teşekkkürler....
Sql veri tabanına foto kaydetme ve okuma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
merhaba
arama sonucunda bircok sonuc dondu bazıları:
viewtopic.php?t=8610&highlight=resim+kaydetme
viewtopic.php?t=8692&highlight=resim+kaydetme
viewtopic.php?t=17038&highlight=resim+kaydetme
vt ye resimlerin yolunu yazıp gosterebilirsin veya ayrı bir tabloda tutabilir master/detail ilişki ile gosterebilirsin
arama sonucunda bircok sonuc dondu bazıları:
viewtopic.php?t=8610&highlight=resim+kaydetme
viewtopic.php?t=8692&highlight=resim+kaydetme
viewtopic.php?t=17038&highlight=resim+kaydetme
vt ye resimlerin yolunu yazıp gosterebilirsin veya ayrı bir tabloda tutabilir master/detail ilişki ile gosterebilirsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

cevap
bobasturk kardeş ilgin için çok teşeklürler...
ancak ben fotoları veri tabanına kaydediyorum. formda araştırma yaptım aşağıda ki kodları buldum ve SQL veri tabanındaki fotografları aşagıdaki kod ile okuttum
aşağıdaki kod ile de veri tabanına fotograf kaydetmek istedim ancak fotografı veri tabanına kaydetmiyor. herhangi bir hata da vermedi hata nedere bulamadım.
Ustalar yardımlarınızı bekliyorum.
ancak ben fotoları veri tabanına kaydediyorum. formda araştırma yaptım aşağıda ki kodları buldum ve SQL veri tabanındaki fotografları aşagıdaki kod ile okuttum
Kod: Tümünü seç
if not Dm.TEvsaf.FieldByName('foto').Isnull then
begin
Image1.Visible:=True;
blobalan:=TADOBlobStream.Create(TGraphicField(Dm.TEvsaf.FieldByName('foto')), bmread);
jpgresim:=tjpegimage.create;
jpgresim.LoadFromStream(blobalan);
Image1.Picture.Assign(jpgresim);
jpgresim.free;
blobalan.free;
end;
Kod: Tümünü seç
If OpenPictureDialog1.Execute Then
Begin
If Not (Dm.TEvsaf.State in [DsInsert, DsEdit]) Then
Dm.TEvsaf.Edit;
Image1.Visible:=True;
jpgresim:=TJpegImage.Create;
jpgresim.assign(Image1.Picture.Bitmap);
hafiza:=TMemoryStream.Create;
jpgresim.savetostream(hafiza);
blobalan:=TADOBlobStream.Create(TGraphicField(Dm.TEvsaf.FieldByName('foto')), bmWrite);
blobalan.copyfrom(hafiza,0);
blobalan.free;
hafiza.free;
jpgresim.free;
Dm.TEvsaf.post;
end;
Selam,
Sanırım eklemeniz gereken iki şey var:
1.
Bu satırdan sonra
yazmanız gerekiyor.
2. Bundan pek emin değilim, ama CopyFrom metodunun ikinci parametresi kaç byte kopyalanacağını gösteriyor. Buraya 0 değil, hafiza.size yazmanız gerekiyor.
Kolay gelsin,
Bahadır Alkaç
Sanırım eklemeniz gereken iki şey var:
1.
Kod: Tümünü seç
jpgresim.savetostream(hafiza);
Kod: Tümünü seç
hafiza.position := 0;
2. Bundan pek emin değilim, ama CopyFrom metodunun ikinci parametresi kaç byte kopyalanacağını gösteriyor. Buraya 0 değil, hafiza.size yazmanız gerekiyor.
Kolay gelsin,
Bahadır Alkaç
Merhaba,
Yine bu forumdan bulduğum ve projemde kullandığım yöntemi yazmak istiyorum. Master/Detail ilişki ile fotoğrafları gösteriyorum ana tablo formu üzerinde;
benimkisi lafazanlık ve ukalalık ama belki fikir verir diye yazmak istedim
kolay gelsin
Yine bu forumdan bulduğum ve projemde kullandığım yöntemi yazmak istiyorum. Master/Detail ilişki ile fotoğrafları gösteriyorum ana tablo formu üzerinde;
Kod: Tümünü seç
procedure TFrmMedyaKartAc.AdvToolButton1Click(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;
verigirisdm.MedyaresimIBDSet.Edit;//değişme moduna al
JvDBImage1.Picture.LoadFromFile(yol);
end;
end;
procedure TFrmMedyaKartAc.AdvToolButton10Click(Sender: TObject);
var
deg:integer;
begin
deg:=Application.MessageBox('Kaydetmek İstiyor musunuz?','Kaydet',MB_YesNO);
if deg=mrYes Then
begin
if verigirisdm.MedyaresimIBDSet.State in [dsInsert, dsEdit] then
verigirisdm.MedyaresimIBDSet.Post;
ShowMessage('Resim Kaydedildi');
end
else
ShowMessage('Resim Kayıt İşlemi İptal Edildi');
end;
procedure TFrmMedyaKartAc.AdvToolButton2Click(Sender: TObject);
begin
if application.MessageBox('Resim Silinecek. Devam Edilsin mi?',
'Silme Onayı',mb_yesno+mb_iconwarning)=idyes then
begin
verigirisdm.MedyaresimIBDSet.delete;
application.MessageBox('Resim Veri Tabanından Silindi',
'Silme İşlemi',mb_ok+mb_iconinformation);
end
else
begin
abort;
application.MessageBox('Resim Silme İşlemi İptal Edildi',
'Silme İşlemi',mb_ok+mb_iconinformation);
end;
end;
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
