|
|
1
28
另一种选择是:不创建ODBC驱动程序,而是实现一个后端,该后端可以与另一个数据库(例如Postgresql或MySQL)使用的有线协议进行通信。 然后,您的用户可以下载并使用Postgresql ODBC驱动程序。 您选择模拟的后端数据库可能最取决于有线协议格式的记录程度。 两者 Postgres 和 MySQL 对他们的客户端-服务器协议有很好的文档。
下面是一个简单的Python 2.7服务器后端示例,可以理解Postgresql wire协议的部分内容。示例脚本创建了一个监听端口9876的服务器。我可以使用命令
阅读Postgresql文档并使用wireshark等工具来检查真实的协议流量,将使实现与Postgresql兼容的后端变得非常简单。
命令行psql会话示例:
一个使用Postgresql协议的ODBC驱动程序也应该可以工作(但我还没有尝试过)。 |
|
|
2
10
ODBC驱动程序非常复杂,编写驱动程序的决定不应掉以轻心。例如,查看现有的开源驱动程序是一种很好的方法,但大多数驱动程序都有你可能不想模仿的缺点:)无论操作系统平台如何,API都是相同的。 MSSQL/Sybase的FreeTDS是我见过的最好的开源ODBC驱动程序实现之一。 如果你控制了应用程序,你可以在合理的时间内实现可能只是规范的一小部分。在通用环境中使用可能需要付出更多的努力才能正确使用。在我的头脑中,除了简单地实现几十个包装器调用外,你还必须实现:
|
|
3
9
我没有,但我曾经面试过一家做过这种事情的公司。他们做了 一种名为AMPS的4GL/DBMS产品,其架构与MUMPS相同,是一种集成了4GL的分层数据库(20世纪70年代出现了一种完整的此类系统)。他们有相当多的遗留代码库,客户希望使用MS Access连接到它。 采访我的首席开发人员分享了一些关于这方面的战争故事。显然,这样做非常痛苦,不应该掉以轻心。然而,他们确实成功地实现了这一目标。 一种替代方法是提供数据集市/BI产品(类似于SAP BW),该产品在外部数据库中显示您的应用程序数据,并将其转换为更友好的格式,如星形或雪花模式。 这将受到不支持实时访问的影响,但可能比ODBC驱动程序更容易实现(更重要的是维护)。如果您的实时访问需求是合理的可预测和有限的,您可能会公开一个web服务API来支持这些需求。 |
|
4
4
|
|
|
5
2
这篇文章现在有点旧了,但值得一提的是,如果你需要一个ODBC驱动程序,你可以使用这样的SDK: http://www.simba.com/drivers/simba-engine-sdk/ 它解决了其他答案中提出的大多数问题,并为您提供了一个简化得多的接口来实现。 我碰巧在Simba工作,所以我有点偏见,但使用SDK确实可以很容易地为你想做的任何事情创建ODBC驱动程序。如果你对编码有点精通,你可以在5天内开始工作。 另一篇文章建议以unixODBC或iODBC作为起点,但这行不通。重要的是要认识到驱动程序管理器(unixODBC、iODBC等)和驱动程序之间的区别。驱动程序管理器充当应用程序和驱动程序之间的中间人,无需直接链接到驱动程序。 您可以从Postgres或MySQL驱动程序开始,将其分叉以使用您自己的数据库,但这不太可能是一项简单的任务。从头开始创建驱动程序甚至更加困难,并且可能会产生持续的(比预期更高的)维护成本。只要你知道这种方法的成本,它也是可行的。 |
|
y2k-shubham · IntelliJ“没有为模块指定SDK。” 2 年前 |
|
|
Stefan vdb · Play商店的Android最低sdk要求 2 年前 |
|
|
Lesha Pipiev · 通过自定义代理向S3发送PUT对象请求 2 年前 |
|
|
Yeo Bryan · Ionic项目申请通知权限 2 年前 |