Передача набора записей в метод компонента для заполнения - PullRequest
0 голосов
/ 15 июля 2010

У меня странная проблема, когда я пытаюсь передать три набора записей методу, чтобы они заполнялись данными при одном подключении к базе данных. Изучив информацию о пользовательских журналах при выполнении приведенного ниже кода, я вижу, что получаю ошибку несоответствия типов при назначении наборов записей, переданных методу, локальным переменным внутри метода.

Таким образом, при вызове mthod регистрируется следующее:

7/15/2010 10:59:47 - Начало GetALLRecordSets 15.07.2010 10:59:47 - Начало инициализации GetALLRecordSets RS

Странный бит в том, что этот же код работает на нашем бета-сервере, где код asp идентичен, а компонент dll идентичен.

Есть мысли о том, что может быть причиной этой проблемы?


Классический код ASP:

set rs1= createobject("ADODB.Recordset")
set rs2 =createobject("ADODB.Recordset")
set rs3 = createobject("ADODB.Recordset")

set myObj = Server.CreateObject("Component.className")

call myObj.GetAllRecordSets(rs1, rs2, rs3)

Код компонента VB6:

Public Sub GetALLRecordSets(ByRef rs1 As Variant, _
                            ByRef rs2 As Variant, _
                            ByRef rs3 As Variant)
On Error GoTo ErrorSpot

    WriteToLog "Begin GetALLRecordSets", "", 0, ""

    Dim lngErrNum As Long
    Dim strErrDesc As String
    Dim filterStr As String
    Dim objConn As ADODB.Connection
    Dim myrs1 As ADODB.Recordset
    Dim myrs2 As ADODB.Recordset
    Dim myrs3 As ADODB.Recordset

    WriteToLog "Begin GetALLRecordSets RS initialization", "", 0, ""

    Set myrs1 = rs1
    Set myrs2 = rs2
    Set myrs3 = rs3

    WriteToLog "End GetALLRecordSets RS initialization", "", 0, ""

    Set rs1 = myrs1.Clone
    Set rs2 = myrs2.Clone
    Set rs3 = myrs3.Clone

ExitSpot:
    'Cleanup
    Exit Sub

ErrorSpot:
    'Save the error information
    lngErrNum = Err.Number
    strErrDesc = Err.Description
    'Log the error
    WriteToLog "GetALLRecordSets", strErrDesc, lngErrNum, strErrDesc    
End Sub

1 Ответ

0 голосов
/ 16 июля 2010

Различная версия MDAC на сервере?Вам может потребоваться создать определенную версию набора записей, например

Set rs1 = CreateObject("ADODB.Recordset.2.8")

...