以下是我在前一个贴子中求助的内容,问题已经解决,用的是union all连接串,能够查询,现在又有新问题:多个人查询时有时查不到,是不是有什么冲突
http://topic.csdn.net/u/20111009/15/bf137677-588d-4c2c-9374-9b70de0b3a41.html这是一个查询界面,起始日期与结束日期的间隔为60天,也就是能查询60天的内容,后台数据库每一天对应一个库表(也就最多要查询60个库表),这样的查询用什么方式比较好,库表如下所示:
http://www.e-unionpay.com/images/QQ截图未命名_6.jpg
http://topic.csdn.net/u/20111009/15/bf137677-588d-4c2c-9374-9b70de0b3a41.html这是一个查询界面,起始日期与结束日期的间隔为60天,也就是能查询60天的内容,后台数据库每一天对应一个库表(也就最多要查询60个库表),这样的查询用什么方式比较好,库表如下所示:
http://www.e-unionpay.com/images/QQ截图未命名_6.jpg
动态拼接,union all 执行。 估计效率不高。LZ每天的库表数据量如何?
delcare @sql varchar(max)
select @sql=isnull(@sql+'union ','')+'select * from '+name from sys.object
where right(name,8) between @begintime and @endtime
exec(@sql)
stSql = "select * from [L2SettleDB].[dbo].[l2_L" & Format(DateAdd("d", i, da), "yyyyMMdd") & "] " & strSql
Else
stSql = stSql & " union all " & "select * from [L2SettleDB].[dbo].[l2_L" & Format(DateAdd("d", i, da), "yyyyMMdd") & "] " & strSql
End If
(
@param varchar(max)
)
as
declare @sql varchar(max)
set @sql=@param
exec @sql
vb.net中调用存储过程:sql = "select * from [L2SettleDB].[dbo].[l2_L20110102] where merch_id='002853110000008' and sett_postdate>='20110102' and sett_postdate<='20110228'"
Dim strsql = "data source=192.168.0.188;database=L2SettleDB;User ID=sa;pwd=12345678" 'OK 清算机
myconnection = New SqlConnection(strsql)
Dim ds As New DataSet()
Dim da1 As New SqlDataAdapter()
da1.SelectCommand = New SqlCommand()
da1.SelectCommand.Connection = myconnection
da1.SelectCommand.CommandText = "reader_proc"
da1.SelectCommand.CommandType = CommandType.StoredProcedure
da1.SelectCommand.Parameters.Add("@param", SqlDbType.VarChar)
da1.SelectCommand.Parameters("@param").Value = sql
'da1.Fill(ds)SQL语句在程序中动态拼写,传给存储过程,这样写对吗,为什么执行这个语句就不能往下执行了呢?da1.Fill(ds),有什么错误的地方吗?