我有一个使用数据库的delphi应用程序 间基/ Firebird 。为了查阅和写入数据,我使用 InterBase 组件选项板(IBTable、IBQuery、IBDataset)。我是 正在将我的系统转换为 sqlserver/Oracle,但我有 在运行时使用 SQL 指令组装的数千个查询 特定数据库InterBase/Firebird。有谁知道 有任何组件或工具可以执行 Parse 命令 Interbase -> SQL Server 或 Interbase-> Oracle ?
我需要的是这样的:
Var
Parser: TParser;
OutputSql: String;
Begin
Parser := TParser.Create();
Parser.Text := 'SELECT FIRST 10 CITYNAME FROM TBCITY';
if Firebird then
OutPutSql := Parser.ParseTo('SQLSERVER');
if Oracle then
OutPutSql := Parser.ParseTo('ORACLE');
ComponentAccess.Sql.Text := OutPutSql;
...
结果:
Parser.ParseTo('SQLSERVER');
将会
“从 TBCITY 选择前 10 个城市名称”
还有
Parser.ParseTo('ORACLE');
将会
“从 TBCITY 选择城市名称,其中 ROWNUM <= 10”
最佳答案
1) AFAIK,像 AnyDAC 这样的库,有 SQL abstraction syntax 。也许您可以在 SQL 命令文本中使用此功能。
2) 如果您在运行时组装 SQL,那么为什么不直接编写这样的代码:
if Firebird then
SQL.Add(...)
else if Oracle then
SQL.Add(...)
...
关于sql - Delphi Interbase Sql 转换为 Sql Server 和 Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3877737/