Witam,
Szukałem po google i po forum ale nie znalazłem nic co rozwiązało by mój problem.
A więc tak, jest sobie TDataSet (TSQLDataSet) i do tego jest tabela:
"TABELA" ( ID INTEGER PRIMARY KEY, TEKST VARCHAR(40) AUTO_INCEREMET, DANE BLOB SEGMENTSIZE 1); (tutaj FB2 Embeded, AI zrobiony na triggerze i procedurze)
I do tej pory (nie miałem potrzeby barrdziej wgłębiać się w nie - te komponenty) i używam tylko SQLConnection, SQLQuery i czasami DataSet głównie gadam z bazą za pomocą zapytań ,które przypisuję do SQLQuery.SQL.Text =: INSERT, UPDATE, DELETE ,a zaś SELECT robię tak (standard?):
DataSet(albo SQLQuery).SQL.Text := 'SELECT ...';
...
SQLQuery.Open;
for i := 1 to SQLQuery.RecordCount do
.....
SQLQuery.Next;
end;
SQLQuery.Close;
Wszystko to działa mi dobrze dopóki używam prostych typów: string, integer, datetime i itd... Jednak problem pojawił mi się w momencie, kiedy chciałem w bazie trzymać większe dane (obrazki/ dłuższy tekst (VARCHAR odpada)) więc typ blob jest jak znalazł ale nie umiem ,a bardziej nie wiem jak obsłużyć go w INSERT i UPDATE ,bo w SELECT to nie powinienm mieć problemu ponieważ kod nie jest zadną niewiadmomą co przed i po nim stoi;
znalazłem to: http://www.scalabium.com/faq/dct0141.htm i odczyt mam napisany tak (przykładowy kod skopiowany z programu):
// Query1 = TSQLQuery od DBX
Query1.SQL.Text := 'SELECT * FROM '+OP_TABLE+' ORDER BY ID ASC';
if DebugMode then AddLog('<color=$006C6C6C>'+Query1.SQL.Text+'</color>');
try
Query1.Open;
if Query1.RecordCount > 0 then begin
lvMain.Items.BeginUpdate;
lvMain.Clear;
for i := 1 to Query1.RecordCount do begin
li := lvMain.Items.Add;
li.Caption := VarToStr(Query1.FieldValues['ID']);
li.SubItems.Add(Trim(VarToStr(Query1.FieldValues[OP_VALUE_COL])));
li.Data := Pointer(VarToInt(Query1.FieldValues['ID']));
Query1.Next;
end;
end;
finally
lvMain.Items.EndUpdate;
Query1.Close;
end;
I mam prośbę czy mógł by ktoś podpowiedzieć co i jak po kolei dla wiersza który chce aktualizować/dodać? (dla tabeli co wspomniałem na początku), bardzo proszę :) Jak wszystko będzie dobrze to mogę podesłać to do "Delphi.Gotowce" :)