Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
FIL23
Member

Откуда:
Сообщений: 349
Добрых суток.

Хочу добавить форматированный текст из RichEdit в БД Firebird, но знаний не хватает как это сделать.

Нашел вот такую тему
http://www.cyberforum.ru/delphi-database/thread695719.html#post3689237
и
http://www.delphirus.com/modules.php?name=Pages&pa=showpage&pid=154

Но судя по этим примерам там надо работать непосредственно через компоненты.

Подскажите.

Спасибо.
11 июл 18, 19:36    [21563845]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1883
Что делал? Что не получилось?...
11 июл 18, 20:05    [21563908]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3659
Хранить данные в обычном blob-поле.
11 июл 18, 20:30    [21563964]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27443
FIL23,

http://www.ibase.ru/ibx/
11 июл 18, 22:11    [21564145]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
Любезный
Member

Откуда:
Сообщений: 547
Можно записать содержимое РичЕдита в TBLOBStream и оттуда в базу.
11 июл 18, 22:12    [21564149]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
FIL23
Member

Откуда:
Сообщений: 349
Любезный
Можно записать содержимое РичЕдита в TBLOBStream и оттуда в базу.


Могли бы пример пожалуйста.
12 июл 18, 06:05    [21564672]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1883
FIL23
Могли бы пример пожалуйста
Это прикол такой? По своим ссылкам из первого поста ходил?
12 июл 18, 11:04    [21565262]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29045

12.07.2018 11:04, white_nigger пишет:
> Это прикол такой? По своим ссылкам из первого поста ходил?

"ты не умничай, ты код давай!" (С)

Posted via ActualForum NNTP Server 1.5

12 июл 18, 12:47    [21565768]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
Любезный
Member

Откуда:
Сообщений: 547
Посмотри тему и сделай наподобие:
http://www.sql.ru/forum/529578/tmemostream-tblobstream
12 июл 18, 12:48    [21565772]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27443
Любезный,

непонятно, нахрена там онанизм с TMemoryStream. Зачем он вообще, если BlobStream это тоже stream, и у Graphics есть SaveToStream???
12 июл 18, 13:55    [21565981]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
Василий 2
Member

Откуда:
Сообщений: 192
TDBRichEdit не предлагать?
12 июл 18, 14:49    [21566142]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
FIL23
Member

Откуда:
Сообщений: 349
Я порешал так , "без DataSet"


Добавить запись в Blob поле через запрос.

procedure TfmGeneral.Button2Click(Sender: TObject);
begin
TestinsertDataInSERVERS(RichEditNotes);
end;

function TestinsertDataInSERVERS(perRichEditNote:TRichEdit):TIBQuery;
var
  per_IBQuery:TIBQuery;
  Stm: TMemoryStream ;  //USES dbtables TBLTMemoryStream;
  
begin   
      // ïðîöåäóðà äëÿ çàïèñè ââåäåíûõ äàííûõ
      per_IBQuery:=my_initialization_TIBQuery_insert(per_IBQuery); //èíèöèàëèçèðóåì ïåðåìåííóþ è ïåðåäàåì åé ïàðàìåòðû
      per_IBQuery.Active := False;
      per_IBQuery.SQL.Clear;
      per_IBQuery.SQL.Add('insert into SERVERS '
                          + '(notes'
                          + ')'
                          + ' values ('
                          + ':perNOTES'
                          + ')');

      Stm := TMemoryStream.Create;
      Stm.Position:=0;
      try
          perRichEditNote.PlainText := False;
          perRichEditNote.Lines.SaveToStream(Stm);
          per_IBQuery.ParamByName('perNOTES').LoadFromStream( Stm, ftBlob);  
          Stm.Position := 0;
      finally
          FreeAndNil(Stm);
      end;

      per_IBQuery.ExecSQL;
      fmConnectToBase.IBTransaction2.Commit;
      FreeAndNil(per_IBQuery); //Ýêâèâàëåíòíî: People. Free; People := nil;
end;



Извлечь данные из Blob

procedure TfmGeneral.Button3Click(Sender: TObject);

begin
TestGetDataFromSERVERS(RichEditNotes)
end;


function TestGetDataFromSERVERS(perRichEditNote:TRichEdit):TRichEdit;
var
  per_IBQuery:TIBQuery;
  stm: TStream;

begin
per_IBQuery:=my_initialization_TIBQuery_insert(per_IBQuery); //èíèöèàëèçèðóåì ïåðåìåííóþ è ïåðåäàåì åé ïàðàìåòðû
per_IBQuery.Active:=false;
per_IBQuery.SQL.Clear;
per_IBQuery.SQL.Add('select * from SERVERS WHERE ID = 312');

per_IBQuery.Active:=true;
per_IBQuery.Last;

stm :=  per_IBQuery.CreateBlobStream( per_IBQuery.FieldByName('NOTES'), bmRead);
try // finally         // ãðóçèìñÿ èç íåãî
  Stm.Position:=0;
  perRichEditNote.PlainText:=false;
  perRichEditNote.Lines.LoadFromStream(stm);
  //Stm.Read(perRichEditNote, sizeof(perRichEditNote) );
  result:=perRichEditNote;
finally
  FreeAndNil(Stm);
  FreeAndNil(per_IBQuery); //Ýêâèâàëåíòíî: People. Free; People := nil;
end;
19 июл 18, 17:42    [21586000]     Ответить | Цитировать Сообщить модератору
 Re: Как через запрос ibquery записать форматированный текст Richedit в БД и обратно.  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6034
FIL23,

Какое-то жуткое из вращение. На кой тут last()?
20 июл 18, 00:11    [21586828]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить