Good Afternoon,
We're using the 30 free trial to see if these components will work for our company.
I'm having issues accessing the data in Firebird using TADTable. It appears that it's upper casing all field names and not qouting them. Firebird is return SQL error code -206, Column unknown.
Is there a setting I'm missing on TADTable to force qouted, case sensitive field names?
note: TADTable looks like a good fit for us because we're currently using BDE to paradox and ranges.
[code]
procedure TForm1.mTestADTableClick(Sender: TObject);
var
vStr: TString;
vCommand: TADTable;
vConnection: TADConnection;
vTransaction: TADTransaction;
vDB: string;
vInfo: TDatabaseInfo;
begin
vConnection := TADConnection.Create(nil);
vTransaction := TADTransaction.Create(nil);
vStr := TString.Create;
vInfo := TDatabaseInfo.Create;
try
vInfo.xName := 'Large';
vInfo.xServer := 'DevBox';
vInfo.xPath := 'D:\Data\Firebird';
vInfo.xUserName := 'sysdba';
vInfo.xPassword := 'masterkey';
vTransaction.Connection := vConnection;
vTransaction.Options.AutoCommit := false;
vTransaction.Options.DisconnectAction := xdRollback;
vConnection.Transaction := vTransaction;
vConnection.LoginPrompt := false;
vConnection.DriverName := '';
vDB := IncludeTrailingPathDelimiter(vInfo.xPath)+
vInfo.xName + '.FDB';
vConnection.Params.Clear;
vConnection.Params.Add(Format('DriverID=%s', ['IB']));
vConnection.Params.Add(Format('Database=%s', [vDB]));
vConnection.Params.Add(Format('Protocol=%s', ['TCPIP']));
vConnection.Params.Add(Format('Server=%s', [vInfo.xServer]));
vConnection.Params.Add(Format('user_name=%s', [vInfo.xUserName]));
vConnection.Params.Add(Format('password=%s', [vInfo.xPassword]));
vConnection.Params.Add(Format('CharacterSet=%s', ['UTF8']));
vConnection.Params.Add(Format('ExtendedMetadata=%s', ['True']));
vCommand := TADTable.Create(nil);
vCommand.Transaction := vTransaction;
vCommand.Connection := vConnection;
vCommand.TableName := 'Main';
vCommand.IndexFieldNames := 'RecordID';
vStr.xAsString := vCommand.GenerateSQL;
vCommand.Open;
vCommand.Close;
finally
FreeAndNil(vInfo);
FreeAndNil(vStr);
FreeAndNil(vCommand);
FreeAndNil(vTransaction);
FreeAndNil(vConnection);
end;
end;
[/code]
returns:
---------------------------
Bdetofirebird
---------------------------
[AnyDAC][Phys][IB]Dynamic SQL Error
SQL error code = -206
Column unknown
A.RECORDID
At line 3, column 12.
---------------------------
OK
---------------------------
GeneratedSQL:
SELECT A.*, A.RDB$DB_KEY AS AD__DB_KEY
FROM MAIN A
ORDER BY A.RECORDID ASC
SQL that would have worked:
SELECT A.*, A.RDB$DB_KEY AS AD__DB_KEY
FROM MAIN A
ORDER BY A."RecordID" ASC
↧