日期:2014-05-19  浏览次数:20420 次

一个查找的问题。
把查找做为SQL语句好呢。还是做为一个语句放到存储过程中?
应该考虑的问题很多。包括程序的不同(比如:C#或者是JAVA)还包括数据库等等。现在可能是SQL-SERVER,以后可能是oracle。
怎么讲呢,就是以后的移植吧。现在开发难点可以,我想做到以后修改的越少!
现在是web,以后可能是win程序。就是把数据层和界面层分离开的意思吧。

我现在也挺乱的!大家就随便聊聊吧。

------解决方案--------------------
无论把sql写在前台或后面存储过程里,当你从一种环境到另一种环境(sql-> oracel),语法都不一样肯定都都要改啦.

个人觉得放在后台改比较方便,改完即生效,不用编译.但安全性,保密性差.
------解决方案--------------------
個人覺得寫在前台也不錯。你現在可以做兩套類庫。把ora和sql的都做好。然後根據你實際的應用來選擇使用。
------解决方案--------------------
SQL的存储过程 跟ORACLE的有很大的区别```直接数据移植是不现实的```

封装成存储过程的好处就是改的时候目的特别清楚```好改些``
------解决方案--------------------
不会快很多吧.

存储过程本身也是一组SQL,只是已经编译过的,不用每次执行都编译.
------解决方案--------------------
单次执行,存储过程和SQL语句没什么区别,之所以说“存储过程在性能方面上会快很多”,是因为“存储过程本身也是一组SQL,只是已经编译过的,不用每次执行都编译.”,减少网络之间数据传输

数据库移植的话,涉及到的东西就太多了,SQLSERVER和ORACLE差别太大了,可以做到程序上不做修改,但是数据库的修改肯定少不了
------解决方案--------------------
个人觉得放在后台改比较方便,改完即生效,不用编译.但安全性,保密性差.
存储过程是一次编译完就存储在 数据库 下次调用的时候就直接运行 ``这是它的优势``

从SQL转到ORACLE 的话 可以从SQL的导入导出 直接导到ORACLE 库表结构记录是不会出错的``但是你以前写的查询语句 等 或者存储过程肯定是有很多地方要改的 因为有的时候语法是不一样的```比如 TOP ROWNUM 等```
------解决方案--------------------
在你的开发环境里面,最好建立这样2类层次结构:
DAL:Data Access Layer 数据访问层
BLL:Business Logic Layer 业务逻辑层

你可以建立一个强命名的数据集,负责对数据库的直接访问,其中包括数据库里的所有表,也包括你对这些表进行各种操作新增的各种访问方法
将你的调用方法代码放到BLL里面,BLL只起桥梁的作用,不直接操作数据库,这样做的好处是可以尽可能地杜绝代码攻击,保证程序安全。

--参考文档:
http://www.cnblogs.com/eddie005/archive/2006/08/01/WorkingWithData_ASPNET2.html
http://www.asp.net/learn/dataaccess/default.aspx?tabid=63
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html