让你的SQL也能实现全球通,生活更轻松,美女爱老公,关于sql转换器 20jam123]

发布时间:2014-1-1 0:09:53编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"让你的SQL也能实现全球通,生活更轻松,美女爱老公,关于sql转换器 20jam123]",主要涉及到让你的SQL也能实现全球通,生活更轻松,美女爱老公,关于sql转换器 20jam123]方面的内容,对于让你的SQL也能实现全球通,生活更轻松,美女爱老公,关于sql转换器 20jam123]感兴趣的同学可以参考一下。

自从这个世界蛋生了sql,就让程序员们陷入困惑,不同数据库厂家虽然宣称兼容sql标准,但事实上出于产品功能或性能的需要,对sql标准的具体实现多多少少会有差异。例如功能相同,厂家不同的两条sql语句: mssql: select top 3 * from products mysql: select * from products limit 0,3 当你需要设计一个兼容全世界数据库的程序或非特定数据库程序时,将会面临痛苦,虽然可以用建模工具一次搞定各种数据库,但你的程序却得一个个写。好的建议是设计一个DAL抽象类,然后根据不同的数据库去实现不同版本的DAL子类,然后用Factory method 获取特定实例.这是一个很好且完美的解决方案。唯一的坏处是,无论sql语句多简单,你也得同时实现两个版本的DAL,如果我们拥有一个sql转换器,就么就可以轻松解决这个问题。例如 SqlConvertor.From("select top 3 * from products"); //输入标准sql语句 string sql=SqlConvertor.To("mysql"); //输出针对mysql语句select * from products limit 0,3 string sql=SqlConvertor.To("oracle"); //输出针对Oracle语句select top 3 * from products 拥有了SqlConvertor,我们便解决了多版本的问题,我们只需要输入标准的sql,就可根据特定数据库得到具体版本的sql。但它有几个限制: 1.只能实现简单和常用函数的转换,因为不同数据库有不同存储过程或函数,要实现大部分转换是可能的,但兼容各个厂商数据库工作量惊人,不太现实。 2.存储过程或函数会受到使用限制,但会提示不能转换的函数 好处是: 1.编写简单的sql很轻松实现数据库兼容。 2.提供额外的安全访问权限控制。传统上我们通过控制数据库的用户或角色来实现访问控制,如果角色或权限是动态设定的,程序会相应变得复杂且难写。而SqlConvertor却很容易实现权限控制,例如 SqlConvertor.From("insert into Products ( ... ) values (...)"); if(SqlConvertor.IsWrite){ //检查是否写入语句     if(SqlConvertor.Tables.Contains("products")){ //检查是否写入products表     } } 由于可以进行严格限制,还可间接预防sql注入攻击,例如 SqlConvetor.IsMatchAction("select","products") //检查是否符合select * from product的行为,否则一律返回False 3.提供了子模块的数据库安全设定。如果我们的产品需要嵌入第三方组件,那么数据库安全显得较为重要,因为有可能我们不信任这一模块,却又不得不开放较高的数据库帐号让其访问。拥有sqlconvertor,我们可以实现同一个数据库帐号下的不同安全设定。 -------------------------------------------------------------------------------------- Require for comment 如果你有好的建议,欢迎说明,我会尽量在程序中加入有用的功能然后提供下载

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

让你的SQL也能实现全球通,生活更轻松,美女爱老公,关于sql转换器  -------------------------------------------------------------------- 強烈不同意第2個豆號與第3個豆號之間的反革命言論!!

29

30

31

32

33

1001

1000000N

不是美女的就不爱老公了吗?

x-->>>>>∝

靠,不排号了!!!!!!!!!!!!!!!!!

a


上一篇:SQL2K升级为2005后执行添加操作后连接不上服务器 100CSDN]
下一篇:sql server 2005里的数据库备份后想在 sql server 2000里还原,结果报错,有什么办法吗 20renjun24]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款