I have a "BLOB SUB_TYPE 0" field that is returned as TDBXTypes.BLOB type, this field stores only text files. (I know it would be better if it were "SUB_TYPE 1", but it's "SUB_TYPE 0")
How can I get the field value and put it on a string ?
I tried with .GetAnsiString, .GetString, .GetWideString, and the error below occurs:
"TDBXTypes.BLOB value type cannot be accessed as TDBXTypes.WideString value type."
Please, see the code:
Code: Select all
procedure TFrmPrincipal.BitBtnTestClick(Sender: TObject);
var
DBXTrn: TDBXTransaction;
DBXCmd: TDBXCommand;
DBXRdr: TDBXReader;
sTxt: string;
begin
sTxt := '';
DBXTrn := DM.DBXCon.DBXConnection.BeginTransaction(TDBXIsolations.ReadCommitted);
try
DBXCmd := DM.DBXCon.DBXConnection.CreateCommand;
try
DBXCmd.Text := 'SELECT FIRST 1 XMLFILE FROM T_XMLTBL';
DBXCmd.Prepare;
DBXRdr := DBXCmd.ExecuteQuery;
if DBXRdr.Next then
sTxt := DBXRdr.Value['XMLFILE'].GetString;
DBXRdr.Free;
finally
DBXCmd.Free;
end;
DM.DBXCon.DBXConnection.CommitFreeAndNil(DBXTrn);
except
DM.DBXCon.DBXConnection.RollBackFreeAndNil(DBXTrn);
raise;
end;
...
...
end;
Thanks,
Fabio R. Bot da Silva.