请问sql 动态组串 如何同时支持兼容sqlserver oracle

system1190 2011-02-10 09:38:48
在代码中,原来是SQLSERVER的数据库,现在要扩展为通过更改配置文件,
可以支持ORACLE,但是动态组串成的sql语句,有点麻烦
sqlserver:
stirng sql="select '1'";
oracle:
string sql="select '1' from dual";

在sqlserver oracle中是不一样的,大家在处理时,如何处理的
思路1:
通过特定关键值做判断,在代码中
if(sqltype=="SQLSERVER")
{
stirng sql="select '1'";
}
else if(sqltype=="ORACLE")
{
string sql="select '1' from dual";
}
可以以后扩展性比较差,而且以后语句一变化,要经常改代码
思路2:
写到xml中,读取出来
if(sqltype=="SQLSERVER")
{
stirng sql=string.format(读xml,"{0}","'1'");
}
else if(sqltype=="ORACLE")
{
string sql=string.format(读xml,"{0}","'1'");
}
维护有一定工作量
思路3:
尽量写到存储过程中,
但是有的确实,需要动态组串。


请问大家有什么好的办法?





...全文
66 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gw6328 2011-02-10
  • 打赏
  • 举报
回复
应该是把对应的dal层换成支持oracle的吧.
王向飞 2011-02-10
  • 打赏
  • 举报
回复
如果必须要通用,那就写基于 SQL-92的标准SQL
只不过就是程序复杂了些

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧