首页
新闻
会员
周边
捐助
园子
·
关注
·
粉丝
·
会员
·
随便看看
·
消息
欢迎,请先
登录
或者
注册
。
登录
/
注册
闪存
博客
发言
小组
投递
新闻
提问
博问
添加
收藏
文库
问题反馈
问题列表
我关注的
我的博问
博问标签
动网如何多数据库支持
0
悬赏园豆:
10
[已解决问题]
解决于 2008-06-01 09:21
<P>最近下了一个动网asp论坛源码,想看看它是如何做到兼容access和sqlserver,并随时切换.<BR>可是里面的代码实在糟糕,很乱,看不出来,还看了很多删除更新操作都不用使用Parameter对象的,晕菜,只是用函数过滤一下危险符号而已,要知到adoyes有Parameter啊,动网到底在搞什么,难怪号称"洞网"<BR>有研究过"洞网"的朋友请赐教一下asp要如何做到多数据库切换,嘿嘿</P>
.NET技术
其他
玛瑙王国--这里的玛瑙会说话
|
菜鸟二级
|
园豆:
258
提问于:2008-05-31 13:39
显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
<
>
分享
分享您的问题
最佳答案
0
支持多数据库是一种困难的事情。支持多数库有两种两种方式。 第一种方式,编写一个数据库抽象层,针对不同的数据库作不同的实现。 第二种方式,使用一种Common SQL,通过一个翻译引擎,将Common SQL翻译为Dialect SQL。 目前很多开放源代码项目,都支持多数据库,通常是使用第一种方式。第一种方式,有一个问题,就是要求程序员对不同数据库都熟悉,这个要对,对大多数程序员而言,太高了。包括著名开源项目的Hibernate,也只是利用到数据库的相当少的一部分功能,没有针对不同数据库的优化选项。不同数据库对 Query Hints和Locking Hints的支持都不相同,而Hints又是数据库访问优化的重要办法。这种方式在实现的过程中,会占用相当大一部分的开放实现,而且对程序的可维护性造成影响。 第二种方式,需要定义一套Common SQL,接近SQL-92标准,跟某一种Dialect SQL相似,例如可以跟MS SQL Server的Transact SQL相似。还需要一个翻译引擎,把Common SQL翻译到不同的Dialect SQL,例如DB2的SQL、Oracle的P/L SQL,Microsoft的Transact SQL。这样,大多数程序员只需要了解一种Dialect SQL,如果以Microsoft的Transact SQL为基准定义Common SQL,大多数的程序员都了解SQL Server的Transact SQL,几乎不需要或者只需要很低培训成本,就可以支持多数据库了。 还可以运用反射技术!!
伽马科技.攻城师
|
小虾三级
|
园豆:1303
|
2008-06-01 01:19
编辑文本
预览
上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要
登录
以后才能回答,未注册用户请先
注册
。