【问题标题】:Writing SQL Query that may works for different RDBMS?编写可能适用于不同 RDBMS 的 SQL 查询?
【发布时间】:2016-03-04 01:32:05
【问题描述】:

我正在编写一个访问数据库服务的应用程序。应用程序应设计为与市场上的任何 RDBMS 完美配合。例如,MySQL、MS SQL Server、Firebird、SQLite、MS Access 或更多。它不应与特定的 RDBMS 相关联。

但是,字符串类型的 SQL 可能适用于某些 RDBMS,但不适用于其他 RDBMS。应该对 SQL 进行轻微的变体,以使其适用于特定的 RDBMS。这包括语法语法、数据类型、连接语法和DML (Data Manipulation Language, CREATE TABLE, CREATE INDEX and etc.)。

在一个应用程序中为不同的 RDBMS 提供不同版本的 SQL 并不是一件容易的事。

是否有某种现成的解决方案可以生成适合不同 RDBMS 的 SQL 查询?也许一些可以在运行时呈现 SQL 文本的库/类取决于 RDBMS 连接。

【问题讨论】:

  • 支持的目的是可以使用ORM 或SQL query builder 解决完全不同的方言。例如,sequelize.js 或 knex.js。
  • 简单抽象数据库层(即接口)并为您想要支持的每种数据库类型进行实现。

标签: sql node.js delphi rdbms


【解决方案1】:

我认为你需要在你的应用程序中使用 ORM,看看 waterline 库,它是 Node.js 的基于适配器的 ORM。

https://github.com/balderdashy/waterline

【讨论】:

    猜你喜欢
    • 2018-10-06
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多