Richedit do bazy danych, jak?

0

Witam.
Mam tabelę z kolumnami Temat i Treść. Używam bazy Firebird.

Edit1 to jest Temat (VARCHAR)
Richedit1 to jest Treść (VARCHAR)

Teraz jak wpisuję treść kilkuwierszową w Richedit to do bazy (do kolumny Treść) dodaje tylko pierwszą linijkę, a chcę całą treść z Richedit.
Czy typ BLOB pomoże mi w tym, czy to tylko jest do bitmap?

//EDIT:
Oj moja baza nie obsługuje typu BLOB.
OK, kombinuję coś dalej.

0

Przecież jest TDBRichEdit.

0

a jak dodajesz? napisz jakiś kod. Jaki rozmiar ustawiłeś w bazie dla pola tresc?

0

OK, zrobiłem to tak:

//dodaj rekord powiadomienia
procedure TForm1.JvXPButton21Click(Sender: TObject);
var
 i:integer;
 tresc: string;
begin
   for i:=0 to jvRichedit1.Lines.Count -1 do
   tresc:=tresc + jvRichedit1.Lines.Strings[i];

  with ibquery4, sql do
    begin
     Close;
     Clear;
     Add('INSERT INTO PRZYPOMNIENIA (TEMAT, TRESC) VALUES (:P1, :P2)');
     ParamByName('P1').AsString:=jvEdit26.Text;
     ParamByName('P2').AsString:=tresc;
     ExecSQL;
     IBTransaction4.Commit;
    end;
    Button4.Click;//tab przypomnienia
    //czyszczenie Editów po dodaniu rekordu do bazy
    jvEdit3.Clear;
    jvRichedit1.Clear;
end;

Temat jest do 100 znaków, treść do 500.
Teraz działa dobrze, tak jak chcę.
Temat i treść wysyłam na maila, jednak treść jest rozlazł na całe okno treści w kliencie mailowym. Musiałbym teraz powstawiać entery lub zrobić jakoś tak, ze jak mam szerokość Richedit, to mi wstawia na końcu Enter.

A DBRichedit ma możliwość wpisywania tekstu, bo niestety nie znalazłem tego we Właściwościach, on tylko odbiera z rekordu.

0

A DBRichedit ma możliwość wpisywania tekstu, bo niestety nie znalazłem tego we Właściwościach, on tylko odbiera z rekordu.

Tak, ma.

0
//dodaj rekord powiadomienia
procedure TForm1.JvXPButton21Click(Sender: TObject);
var
 tresc: string;
begin
  with ibquery4, sql do
    begin
     Close;
     Clear;
     Add('INSERT INTO PRZYPOMNIENIA (TEMAT, TRESC) VALUES (:P1, :P2)');
     ParamByName('P1').AsString:=jvEdit26.Text;
     ParamByName('P2').AsString:=jvRichedit1.Lines.Text;
     ExecSQL;
     IBTransaction4.Commit;
    end;
    Button4.Click;//tab przypomnienia
    //czyszczenie Editów po dodaniu rekordu do bazy
    jvEdit3.Clear;
    jvRichedit1.Clear;
end;
0

@puchi

Nie, bo nie działa.:

ParamByName('P2').AsString:=jvRichedit1.Lines.Text;

Twój sposób dalej bierze pierwszą linię, moja pętla się sprawdza.
A jak już dajesz ten kod to wywal zmienną z deklaracji. :)

BTW. Dorobiłem progressbara i blokade przycisków od operacji na rekordach podczas wysyłania.
Działa pięknie. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1