Bartek Borczyk

Bartek Borczyk Operator liczb i
słów

Temat: ADO, STORED PROCEDURE, PARAMETER

Raport chce zrobić a w temacie zielonkawy jestem.

Założenia:
- raport powstaje w ekselu za pomocą vba
- łączę się z sql serverem przez ado
- aby wyciągnąć dane muszę wykonać procedurę P i przekazać do niej kilka parametrów
- procedura wypełnia mi tabelę T, z której chcę pobrać dane
- zaadoptowałem sobie z dobrego źródła kawałek kodu


Set conKwerenda_Połączenie = New ADODB.Connection
With conKwerenda_Połączenie
.ConnectionString = strKwerenda_ŁańcuchPołączenia
.Open , , "*"
End With

Set comKwerenda_Polecenie = New ADODB.Command
With comKwerenda_Polecenie
.ActiveConnection = conKwerenda_Połączenie

.CommandType = adCmdStoredProc
.CommandTimeout = 240
.CommandText = "wusr_PrzygotujStanNaDzien"
.Parameters("@Mag").Value = "%"
.Parameters("@Symkar").Value = "%"
.Parameters("@OpiKar").Value = "%"
.Parameters("@Data").Value = #11/19/2009#
.Parameters("@BezZero").Value = 1
.Parameters("@StanWar").Value = 0

Set rcsKwerenda = .Execute

End With

With rcsKwerenda
If Not .EOF Then

For i = 0 To .Fields.Count - 1
Worksheets(1).Cells(1, i + 1).Value = .Fields(i).Name
Next i

Worksheets(1).Range("A2").CopyFromRecordset rcsKwerenda
.Close

End If
End With


- i powstaje problem bo na linii If Not .EOF Then pojawia się błąd 'Operacja nie jest dopuszczalna, gdy obiekt jest zamknięty'

Szczerze mówiąc jak z Command.Execute gdzie wykonuję procedurę wypełnia mi się Recordset na bazie tabeli T. Nie czaję tego na chwilę obecną :/Bartosz Borczyk edytował(a) ten post dnia 20.11.09 o godzinie 17:28
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: ADO, STORED PROCEDURE, PARAMETER

To nie jest tak, ze robiac EndWith zamykasz recordset?
Sprobuj wywalic "Set rcsKwerenda = .Execute" poza With.

Strzelam, polecam grupe Excel VBA, w koncu problem jest z VBA nie z baza danych :)Bartosz Ślepowronski edytował(a) ten post dnia 20.11.09 o godzinie 18:13

konto usunięte

Temat: ADO, STORED PROCEDURE, PARAMETER

Bartosz Borczyk:
Raport chce zrobić a w temacie zielonkawy jestem.

Założenia:
- raport powstaje w ekselu za pomocą vba
- łączę się z sql serverem przez ado
- aby wyciągnąć dane muszę wykonać procedurę P i przekazać do niej kilka parametrów
- procedura wypełnia mi tabelę T, z której chcę pobrać dane
- zaadoptowałem sobie z dobrego źródła kawałek kodu


Set conKwerenda_Połączenie = New ADODB.Connection
With conKwerenda_Połączenie
.ConnectionString = strKwerenda_ŁańcuchPołączenia
.Open , , "*"
End With

Set comKwerenda_Polecenie = New ADODB.Command
With comKwerenda_Polecenie
.ActiveConnection = conKwerenda_Połączenie

.CommandType = adCmdStoredProc
.CommandTimeout = 240
.CommandText = "wusr_PrzygotujStanNaDzien"
.Parameters("@Mag").Value = "%"
.Parameters("@Symkar").Value = "%"
.Parameters("@OpiKar").Value = "%"
.Parameters("@Data").Value = #11/19/2009#
.Parameters("@BezZero").Value = 1
.Parameters("@StanWar").Value = 0

Set rcsKwerenda = .Execute

End With

With rcsKwerenda
If Not .EOF Then

For i = 0 To .Fields.Count - 1
Worksheets(1).Cells(1, i + 1).Value = .Fields(i).Name
Next i

Worksheets(1).Range("A2").CopyFromRecordset rcsKwerenda
.Close

End If
End With


- i powstaje problem bo na linii If Not .EOF Then pojawia się błąd 'Operacja nie jest dopuszczalna, gdy obiekt jest zamknięty'

Szczerze mówiąc jak z Command.Execute gdzie wykonuję procedurę wypełnia mi się Recordset na bazie tabeli T. Nie czaję tego na chwilę obecną :/Bartosz Borczyk edytował(a) ten post dnia 20.11.09 o godzinie 17:28

sprawdź czy recordset IsNothing, jak nie to działaj

http://www.missico.com/personal/support/visual_basic_t...
Bartek Borczyk

Bartek Borczyk Operator liczb i
słów

Temat: ADO, STORED PROCEDURE, PARAMETER

Tak jeszcze myślałem czy znaki % i zapis daty są w porządku.

konto usunięte

Temat: ADO, STORED PROCEDURE, PARAMETER

Bartosz Borczyk:
Tak jeszcze myślałem czy znaki % i zapis daty są w porządku.

pokaż kod procedury to pogadamy

konto usunięte

Temat: ADO, STORED PROCEDURE, PARAMETER

Własnie kod procedury pokaz

aha mam pytanie czy ta baza to Softlab bo zbierznosc nazw duza :)

Następna dyskusja:

Twenty tips to write a good...




Wyślij zaproszenie do