word yazılarını veritabanına kaydetme (sybase)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
word yazılarını veritabanına kaydetme (sybase)
selamlar
arkadaslar Richedit e yazıp yazıları veritabanına kaydediyorum düz txt olarak kaydediliyor
oysa yazıları sekillendirdigim gibi kaydetmek ve okumak istiyorum
RengaRenk yazılar bold italik filan yani
ne yapmam lazım
Sybase veritabanı kullanıyorum
şimdiden tesekkürler
SEVGİLER
arkadaslar Richedit e yazıp yazıları veritabanına kaydediyorum düz txt olarak kaydediliyor
oysa yazıları sekillendirdigim gibi kaydetmek ve okumak istiyorum
RengaRenk yazılar bold italik filan yani
ne yapmam lazım
Sybase veritabanı kullanıyorum
şimdiden tesekkürler
SEVGİLER
En son abdulkadir tarafından 23 Haz 2004 12:48 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
Alan Blob-Text olması yeterli
kullandıgın dbaware bilesen onemli yani ne ile vt ye kayıt yapıyorsun
bu alana bir dbedit ile de kayıt girersin dbmemo ile de dbrichedit ile de
ama herbirinde ayrı bir sonuc alırsın
sen burada dbrichedit ile kayıt yapmalısın
kayıt yapacagın form uzerine de dbricheditde secili alanı renklendiren fontunu vs. ayarlayan bir toolbar yerlestireceksin.
basit de olsa ben boyle bir uygulama yaptım, ufak tefek hatalar dısında calısıyor.
Marco Cantunun bir orneginde richedit kullanımını gostermmisti
bende ondan faydalanarak yapmıstım
kullandıgın dbaware bilesen onemli yani ne ile vt ye kayıt yapıyorsun
bu alana bir dbedit ile de kayıt girersin dbmemo ile de dbrichedit ile de
ama herbirinde ayrı bir sonuc alırsın
sen burada dbrichedit ile kayıt yapmalısın
kayıt yapacagın form uzerine de dbricheditde secili alanı renklendiren fontunu vs. ayarlayan bir toolbar yerlestireceksin.
basit de olsa ben boyle bir uygulama yaptım, ufak tefek hatalar dısında calısıyor.
Marco Cantunun bir orneginde richedit kullanımını gostermmisti
bende ondan faydalanarak yapmıstım
ÜŞENME,ERTELEME,VAZGEÇME
Aslınta tek problem veritabanı tarafında ilgili alan icin secilen tipten ibaret... tip olarak zannedersem varchar ya da turevi bir tip secilmis... Bunun yerine long varchar veya text secilmeli....
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
Merhaba hocam
VT de ICERIK alanı Longvarchar
office2000 de Word tablosu falan olusturup copy paste edip
kaydediyorum
db de cekerkerken
bir cok sekilde denedim sadece yazıları alabiliyorum
tablolar şöyle dursun sadece yazıyı bold seklinde kaydediyorum
sonuc yine aynı düz yazı seklinde.
Richedit in özelliklerini kurcaladım deyismedi
ilginize tesekkür ederim
sevgiler.
VT de ICERIK alanı Longvarchar
office2000 de Word tablosu falan olusturup copy paste edip
kaydediyorum
Kod: Tümünü seç
SQL.Add(''''+RichEdit1.Lines.Text+''',');
Kod: Tümünü seç
RichEdit1.Lines.Text:=FieldByName('ICERIK').AsVariant;
RichEdit1.Lines.Add(FieldByName('ICERIK').AsString);
tablolar şöyle dursun sadece yazıyı bold seklinde kaydediyorum
sonuc yine aynı düz yazı seklinde.
Richedit in özelliklerini kurcaladım deyismedi
ilginize tesekkür ederim
sevgiler.
-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
S.A
Delphi nin help in deki bir örnekten yola cıkarak su sekilde istedigimi elde ettim Ama en dogrusu bumu bilemiyorum
Kaydederken
DB den cekerken
Ne dersiniz ???
Basarılar
Delphi nin help in deki bir örnekten yola cıkarak su sekilde istedigimi elde ettim Ama en dogrusu bumu bilemiyorum
Kaydederken
Kod: Tümünü seç
var
Stream1,Stream2: TMemoryStream;
begin
inherited;
Stream1 := TMemoryStream.Create;
Stream2 := TMemoryStream.Create;
try
RichBASLIK.Lines.SavetoStream(Stream1);
RichICERIK.Lines.SavetoStream(Stream2);
Query1.Edit;
TBlobField(Query1.FieldByName('BASLIK')).LoadFromStream(Stream1);
TBlobField(Query1.FieldByName('ICERIK')).LoadFromStream(Stream2);
Query1.FieldByName('ORTA').AsString:= EditORTA.Text;
Query1.FieldByName('AD').AsString:= EditADI.Text;
Query1.Post;
finally
Stream1.Free;
end;
end;
Kod: Tümünü seç
procedure TTebligatlarForm.TebligatGoster(ID: string);
var
WordBaslik,Wordicerik:TBlobStream;
begin
WordBaslik:=Nil;
Wordicerik:=Nil;
with Query1 do begin
Active:=true;
SQL.Clear;
Close;
SQL.Add('select * FROM AKL');
SQL.Add('Where ID = '+ID+'');
try
open;
EditORTA.Text:=Query1.FieldByName('ORTA').AsString;
EditADI.Text:=Query1.FieldByName('AD').AsString;
if not (Query1.FieldByName('BASLIK') as TBlobField).IsNull then begin
WordBaslik :=TBlobStream.Create(TBlobField(Query1.FieldByName('BASLIK')),bmRead);
RichBASLIK.Lines.Clear;
RichBASLIK.Lines.LoadFromStream(WordBaslik);
WordBaslik.Free;
end;
except
on E:EInOutError do begin
MessageDlg('HATA! '+E.Message, mtError, [mbOk], 0);
end;
end;
try
if not (Query1.FieldByName('ICERIK') as TBlobField).IsNull then begin
Wordicerik:=TBlobStream.Create(TBlobField(Query1.FieldByName('ICERIK')),bmRead);
RichICERIK.Lines.Clear;
RichICERIK.Lines.LoadFromStream(Wordicerik);
Wordicerik.Free;
end;
except
on E:EInOutError do begin
MessageDlg('HATA! '+E.Message, mtError, [mbOk], 0);
end;
end;
end;
end;
{--------
TebligatGoster(ListView1.Selected.SubItems.Text);
----------}
Basarılar
Streamlerle çalışırken position a dikkat etmek çok önemli
yukarıda benim kullandığım bir kod kısmı var. Ben bunu resim için kullanıyorum. Blob alan binary olduğu için içine ne konulduğuna bakılmaz, dolayısı ile her şeyi yazıp okuyabilirsin.
Kolay gele
Kod: Tümünü seç
MemStream.Clear;
MemStream.Position := 0;
TBlobfield(QUE_Kimlik.FieldByName('RESIM')).SaveToStream(MemStream);
MemStream.Position := 0;
TBlobfield(QUE_Diger.FieldByName('RESMI')).LoadFromStream(MemStream);
MemStream.Clear;
MemStream.Position := 0;
UGSDBImage1.Invalidate;
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
hocam ilginize tesekkür ederim
biraz ugrastıktan sonra bu sekilde kaydetmeyi becerdim
acaba gereksizmi daha basit sekilde olurmu bilemedigim için
danısayım dedim kodlarıda oldugu gibi paste ettim
position ve clear i de eklerim
ve galiba? dogru yoldayım
Tesekkür eder hayırlı ve bereketli işler dilerim.
biraz ugrastıktan sonra bu sekilde kaydetmeyi becerdim
acaba gereksizmi daha basit sekilde olurmu bilemedigim için
danısayım dedim kodlarıda oldugu gibi paste ettim
position ve clear i de eklerim
ve galiba? dogru yoldayım

Tesekkür eder hayırlı ve bereketli işler dilerim.
-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
Merhabalar
yukarda db ye kaydettiklerimi worde aktarmam gerekiyor
yine stream kullanmadan olmadı düz yazı seklinde cıktı
stream kullanmakta hataya sebep oluyor
Filestream kullanarak dosya.doc olarak keydedebiliyorum ama
sadece bir alanı //BASLIK
3 alanı kaydetmem gerekiyor
// BASLIK,ORTA,ICERIK,
Filestream kullanarak 3 alanı bir araya getiremedim
bu alanları nasıl word e aktaracam yada word dosyası olarak kaydedicem
?
Sevgiler.
yukarda db ye kaydettiklerimi worde aktarmam gerekiyor
yine stream kullanmadan olmadı düz yazı seklinde cıktı
stream kullanmakta hataya sebep oluyor
Kod: Tümünü seç
var
wrdSelection, wrd, wrdDoc: Variant;
A: Tquery;
BlobStream1 : TBlobStream;
begin
A:=TQuery.Create(self);
A.DatabaseName:=STR_DATABASENAME;
A.sql.add('SELECT *');
A.sql.add('FROM AKL');
A.sql.add('WHERE ID = 19');
try
A.Open;
wrd := CreateOleObject('Word.Application');
wrd.Visible :=TRUE;
wrdDoc:=wrd.Documents.Add();
wrdSelection := wrd.Selection;
BlobStream1 :=TBlobStream.Create(A.Fieldbyname('BASLIK') as TBlobField, bmRead);
//wrdDoc.Range.InsertAfter(BlobStream1); hata
wrdDoc.Range.InsertAfter('');
finally
BlobStream1.Free;
A.Free;
end;
sadece bir alanı //BASLIK
3 alanı kaydetmem gerekiyor
// BASLIK,ORTA,ICERIK,
Filestream kullanarak 3 alanı bir araya getiremedim
bu alanları nasıl word e aktaracam yada word dosyası olarak kaydedicem
?
Sevgiler.
Abdulkadir kardeş, ben RichEdit icinde formatlı veri saklamak icin omrumde yaptıgım butun projelerde bile toplam bu kadar kod yazmadım 
Şaka bir yana ben Infopower'in wwDBRichEdit ini kullanıp hiç bir kod da yazmıyorum. Zannedersem senin de DBRichEdit kullanman yeterli olur.... Bir koda yazmana gerek kalmaz....

Şaka bir yana ben Infopower'in wwDBRichEdit ini kullanıp hiç bir kod da yazmıyorum. Zannedersem senin de DBRichEdit kullanman yeterli olur.... Bir koda yazmana gerek kalmaz....
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...
