比如原来的表A 有1,2,3,4列。
换为新的表B 有a,b,c,d,e列。
其中a对应1,b对应4...(就是说两个表的大体结构不变,但是列名,表名 或者数据库名都变了)如何实现不影响客户端 来跟换数据库内容。
(方法是写在webservices服务器端的)
换为新的表B 有a,b,c,d,e列。
其中a对应1,b对应4...(就是说两个表的大体结构不变,但是列名,表名 或者数据库名都变了)如何实现不影响客户端 来跟换数据库内容。
(方法是写在webservices服务器端的)
调试欢乐多
直接更新webservices
所以只要修改其中对应的接口内部方法即可。
/// <summary> 执行查询返回查询结果集
/// </summary>
/// <param name="sSql">查询语句</param>
/// <returns>查询结果集</returns>
[WebMethod]
public DataTable DBPlatFormExecuteReaderBySQL(string sSql)
服务器这边的参数是 SQL语句,在客户端已经定义死了,现在把表换了 在不该客户段的前提下 有什么办法那?
你现在只能改DBPlatFormExecuteReaderBySQL里面的具体实现过程
select * from tabA
现在可以改成:
select * from tabB
现在把表换成B,但是还是 select * from A;
用什么方法才使查询的结果还是原来的值那?
public DataTable DBPlatFormExecuteReaderBySQL(string sSql) 中的sSql放着不动
在方法体内重写写SQL语句,那样客户端调用也没事,反正不执行客户端传来的SQL.
如果客户端传过来的是 select * from tableA传过来后,并不执行它,而是对它进行重写,将它变成 select * from tableB
然后再去执行。。
一看就知道楼主根本没有采用分层开发,客户端应该是要传一个与数据库操作无关的对象给逻辑层由逻辑层与数据库打交到
然后过滤sql语句
比如原来表A有一列是列名是 test。
现在列名改成testone.用原来的查询就不能查询到结果了。
cmd = new SqlCommand(strsql, conn);
cmd.Parameters.Add("@UserId", SqlDbType.Int).Value = users.UserId;users.UserId 是数据层传过来的参数。
但是原来的表 的DepId 名字改变了 就没办法查到了结果了。
怎没才能实现 列名改了还能查到一样的结果那
as
select 列名 from 数据库表这样就能实现数据库列名在换 也能查询出来同样的结果了。叫我们实现这个功能,主要是因为我们现在用的数据 不是很稳定,可能这段时间用自己摘录的数据,而以后可能别的公司把更详细的数据库开放给我们 就要换数据库了。 不能保证两个数据库什么都一样 可能有细微的差别 所以要实现这个功能