Hi Alex,
The Result is:
Blob Values Before Edit:
Value of FieldA: fieldA
Value of Fieldb: fieldB
Blob Values After Edit:
Value of FieldA: fieldA
Value of Fieldb: fieldB
ClientDataSet.FieldByName('TXT').AsString := 'New text';
In FieldA the text inserted
'NEW TEXT' does not appear.
I'm running the code right or I'm doing a little mess?
Because missing Provider and DataSetProvider declarations, I change the code to:
{$APPTYPE CONSOLE}
uses
SysUtils,
Uni,
SQLiteUniProvider,
DB,
DBClient,
Provider;
var
UniConnection: TUniConnection;
UniQuery: TUniQuery;
DataSetProvider: TDataSetProvider;
ClientDataSet: TClientDataSet;
begin
UniConnection := TUniConnection.Create(nil);
try
UniConnection.ProviderName := 'SQLite';
UniConnection.ConnectString := 'Provider Name=SQLite;Data Source=:memory:;LoginPrompt=False';
UniConnection.Connect;
UniConnection.ExecSQL('CREATE TABLE TEST(ID INTEGER, TXT VARCHAR2(40), fieldA TEXT, fieldB TEXT, CONSTRAINT PK_TEST PRIMARY KEY(ID))');
UniConnection.ExecSQL('INSERT INTO TEST VALUES(1, ''test'', ''fieldA'', ''fieldB'')');
UniQuery := TUniQuery.Create(nil);
try
UniQuery.Connection := UniConnection;
UniQuery.SQL.Text := 'SELECT * FROM TEST';
UniQuery.KeyFields := 'ID';
DataSetProvider := TDataSetProvider.Create(nil);
try
DataSetProvider.DataSet := UniQuery;
DataSetProvider.UpdateMode := upWhereChanged;
ClientDataSet := TClientDataSet.Create(nil);
try
ClientDataSet.ProviderName := 'DataSetProvider';
ClientDataSet.SetProvider(DataSetProvider);
ClientDataSet.Open;
Writeln('Blob Values Before Edit:');
Writeln(Format('Value of FieldA: %s%sValue of Fieldb: %s', [ClientDataSet.FieldByName('fieldA').AsString, #13#10, ClientDataSet.FieldByName('fieldB').AsString]));
ClientDataSet.Edit;
ClientDataSet.FieldByName('TXT').AsString := 'New text';
ClientDataSet.Post;
ClientDataSet.ApplyUpdates(-1);
Writeln('Blob Values After Edit:');
Writeln(Format('Value of FieldA: %s%sValue of Fieldb: %s', [ClientDataSet.FieldByName('fieldA').AsString, #13#10, ClientDataSet.FieldByName('fieldB').AsString]));
finally
ClientDataSet.Free;
end;
finally
DataSetProvider.Free;
end;
finally
UniQuery.Free;
end;
finally
UniConnection.Free;
Readln;
end;
end.
Thanks for your support
Raphael Vital