开发支持多种不同数据库的数据访问控件(300分)

  • 主题发起人 主题发起人 CurveSoft
  • 开始时间 开始时间
C

CurveSoft

Unregistered / Unconfirmed
GUEST, unregistred user!
希望能支持多种流行的数据库,ORACLE,MS SQL,MYSQL,ACCESS,其他的先用ODBC
试过dbExpress,发现它连接ORACLE需要安装ORCL CLIENT,另外我用它连接我的MYSQL服务器从来没有成功过,老是提示非法的用户名/密码
我的构想是最少提供两个控件,一个Connection,一个DataSet,这样基本上就可以满足使用了
对于同时支持不同的数据库,因为没有太多时间,所以只好在Connection里包装上现有的各种连接数据库的控件,比如ODAC,TMYSQL,ADO这些了
Connection是供DataSet连接的,但DataSet要供其他控件连接,那么如何来做一个与其他数据访问控件兼容的DataSet呢(至少要能供DataSource连接)?,应该不是简单地从TDataSet继承就可以的吧?哪位能告诉我做这样的数据库控件需要注意哪些问题?

真心希望得到大家的帮助!!!分数源源不断送上!!!
 
为什么没有人回答啊?难道没有人考虑过这个问题么?随便给点意见嘛
 
太理想化了,居然还期望“不安装数据库客户端”,知道数据库访问引擎(无论是OLEDB还是ODBC或JDBC)是谁提供的吗?是数据库开发商,是它们提供一套API你才能connect。

如果在安装数据库客户端的情况下开发,我认为就不必要了,ADO已经很完美了
 
真的是希望有个很完美的,不过自己实现好象太难了吧
 
我也知道这个想法太完美,borland都还没能做到,但我们有现有的资源,直接访问各种数据库的控件很多了,只需要把他们拼到一起来就可以应付了嘛

我现在头痛的是这个空间该如何写比较好
 
http://www.playicq.com/dispdocnew.php?id=10910
SQL Direct v3.01 for Delphi n BCB incl source -- 作者:http://www.sqldirect

适合语言: Delphi & Kylix

简介: SQLDirect Component Library - set of non-visual Delphi components.
These components expand possibilities Delphi Visual Component Library,
give you access to data on SQL-servers around BDE or ODBC and support
all data-aware components. Now library supports the following
SQL-servers: Centura SQLBase (version 6 and 7), Oracle Server (7.2+),
IBM DB2 Database, Informix, Interbase, MySQL, Microsoft SQL Server and
Sybase Adaptive Server Enterprise and Adaptive Server Anywhere
(through Open-Client Library). Hereafter this list will extend. For
access to databases the native programming interface (API) of servers
is used only. It means, that access to SQLBase-databases needs SQLBase
Client for Windows, to the databases on Oracle - Oracle SQL*Net, to
the DB2 databases - Client Application Enabler, to the databases on
SQL Server - SQL Server Client and to the Sybase databases - Sybase Open Client libraries.
 
:(我试过这个控件了,连MYSQL,ORACLE,都没有成功。。。。。
好像它连ORACLE还是要CLIENT的。。。。。
 
哈哈,有戏,连MS SQL,MYSQL都成功了,可是ORACLE还是不行,难道非要装ORACLE CLIENT不可?另外,这个SQL DIRECT能连ACCESS么?
 
楼主,请不要自欺欺人,你能连MS SQL,MYSQL或Access成功,那是因为微软OS自带了(或你安装其他软件比如Office、VB、Delphi等开发工具时随软件安装了)一些常规的数据库引擎(相对应数据库客户端的一部分),不信你新建ODBC连接,驱动池里能列出来的引擎都是你机器上已安装了的;

如果对这句话有怀疑,找一台干净的机器,重新安装OS,然后用你的控件写的程序去运行,我保证你什么数据库都连不了
 
我也认为这个基本上很难。也许是不可能的。
如果有可能有也许早就有了。
只要想得到的事就有人做。
你看看 SoftIce、VirtualPC、Ghost2003 吧。这些软件多么神奇吧。
 
要实现这些功能只有一个办法:
深入研究所有数据库厂商的API,然后直接封装这些API;
但是:
1、数据库厂商没那么傻,他们的API都是不公开的,为了让用户正常对数据库进行操作,所以他们才提供如OLEDB/JDBC/ODBC的支持;
2、这些API都是跟DB的版本相关的,DB一升级,API也跟着有些变化,而能最先同步这种变化的只有厂商自己,我想你的控件是跟不上这个节奏的。
 
cheylin,我想你还没完全理解我的意思,我就是想让我的程序能支持多种数据库,ACCESS的驱动系统自带了,那我当然要用,我又不是傻子,只是ORACLE 的客户端实在太大了。。。。
 
后退
顶部