求教部署包含外部程序集的报表发布
环境:
win2k sp4 + Sql server 2k sp3 + .net 1.1 vs2003
问题:
我在我的报表中引用了一个类,.net1.1中包含的adodb.dll,然后在自定义代码中使用
我的目的是通过在自定义的代码中实现独立查询数据库,然后给报表返回一些结果。
我在vs环境中调试,预览都没有问题,部属过程中也没有报错,但是在reports里面打开的时候就有问题了:
无法加载表达式宿主程序集。详细信息: 该程序集不支持部分受信任的调用方。 (rsErrorLoadingExprHostAssembly)
上网查询N久,看了好多咚咚,可能是因为太笨了,没有看明白,只是估计问题出在我调用的那个dll上面了,据说好像引用的那个dll也要部署的说,但是没有相应的措施,好像要改配置文件,但是我按照说明修改了也不行啊。有没有高人实践过,来指点一下阿……%
我看得文档是:
http://www.microsoft.com/china/msdn/library/data/sqlserver/dnsql2k.mspx?mfr=true
代码如下:
'定义公共变量
Public Rsset As New ADODB.Recordset
'判断是否达标的函数
Public Function IsGrade(ByVal Colmns_Value As Double, ByVal Field_Name As String) As String
Dim Grade_Value As Double
On Error Resume Next
Grade_Value = Rsset.Fields(Field_Name).Value
If Grade_Value < Colmns_Value Then
IsGrade = "已"
Else
IsGrade = "没有"
End If
End Function
'连接数据库,获取达标指标
Public Function GetGrade(ByVal Month_Stamp As String)
Dim Conn As New ADODB.Connection
Dim ConnStr As String
Dim StrSql As String
Dim ServerName As String
Dim Uid As String
Dim Pwd As String
'oracle 数据库服务名
ServerName = "gxdb"
'oracle 数据库帐户
Uid = "perf"
'oracle 数据库密码
Pwd = "gxgperf"
ConnStr = "Driver={Microsoft ODBC for Oracle};Server=" & ServerName & ";Uid=" & Uid & ";Pwd=" & Pwd & ";"
Conn.CommandTimeout = 0
Conn.CursorLocation = ADODB.CursorLocationEnum.adUseClient
Conn.Open(ConnStr)
Month_Stamp = DateAdd(DateInterval.Month, -1, CDate(Month_Stamp))
Month_Stamp = Format(CDate(Month_Stamp), "yyyy-MM")
StrSql = "select * from GX_SEND_CUMAIL_GRADE where month_stamp='" & Month_Stamp & "'"
Rsset = Conn.Execute(StrSql)
While Rsset.RecordCount = 0
Month_Stamp = DateAdd(DateInterval.Month, -1, CDate(Month_Stamp & "-01 00:00:00"))
StrSql = "select * from GX_SEND_CUMAIL_GRADE where month_stamp='" & Format(CDate(Month_Stamp), "yyyy-MM") & "'"
Rsset = Conn.Execute(StrSql)
End While
End Function