Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excell, ADO / 6 сообщений из 6, страница 1 из 1
10.09.2004, 12:42
    #32689441
diml
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excell, ADO
Вызываю в макросе процедуру из MsSQL2000, которая возвращает три набора.
(Проверял в QueryAnalyzer)
но ADO мне пишет ошибку :
Код: plaintext
1.
2.
     Err: 3704
     "Operation not allowed when the object is closed"
Т.е. как я понял она мне ничего не вернула.
Может я что не так делаю?
Вот кусок макроса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
Dim Connection As ADODB.Connection
Dim AdoCommand As ADODB.Command
Set Connection = New ADODB.Connection

Connection.CursorLocation = adUseClient
   
 'Инф по соединению 
Dim User As String
Dim Pass As String
Dim BD As String
User = Range("E3").Value
Pass = Range("F3").Value
BD = Range("G3").Value

    Connection.CommandTimeout =  5 
    Connection.Provider = "SQLOLEDB"
    Connection.ConnectionString = "Provider=SQLOLEDB;User ID=" & User & ";Password=" & Pass & ";Initial Catalog=" & BD & ";Data Source=Folionew"
    Connection.Open

Set AdoCommand = New ADODB.Command
    AdoCommand.CommandTimeout =  120 
    AdoCommand.ActiveConnection = Connection
    AdoCommand.CommandType = adCmdStoredProc
    AdoCommand.CommandText = "dbo.P_DATA_ZP"

     'Описываем параметры процедуры 
    Dim Par1 As ADODB.Parameter
    Dim Par2 As ADODB.Parameter
    Dim Par3 As ADODB.Parameter
    
    Set Par1 = New ADODB.Parameter
    Par1.Name = "STR"
    Par1.Type = adVarChar
    Par1.Size =  1000 
    Par1.Direction = adParamInput
    Par1.Value = Range("E2").Value
    
    Set Par2 = New ADODB.Parameter
    Par2.Name = "PRN"
    Par2.Type = adInteger
    Par2.Direction = adParamInput
    Par2.Value = Val(Range("F2").Value)
    
    Set Par3 = New ADODB.Parameter
    Par3.Name = "vStartDate"
    Par3.Type = adVarChar
    Par3.Size =  20 
    Par3.Direction = adParamInput
    Par3.Value = Range("G2").Value
    
    AdoCommand.Parameters.Append Par1
    AdoCommand.Parameters.Append Par2
    AdoCommand.Parameters.Append Par3
    
    Dim RS1 As ADODB.Recordset
    Set RS1 = AdoCommand.Execute
    Range("E1").Value = RS1.RecordCount

Народ подскажите где ошибка! Я уже не знаю где копать.
...
Рейтинг: 0 / 0
10.09.2004, 13:16
    #32689551
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excell, ADO
А кто тебя надоумил переменную типа Connection назвать Connection?
Как по твоему VB должен разбираться во всех этих Conntection'ах?
...
Рейтинг: 0 / 0
10.09.2004, 14:34
    #32689755
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excell, ADO
автор
Dim RS1 As ADODB.Recordset
Set RS1 = AdoCommand.Execute

Dim RS1 As new ADODB.Recordset
...
Рейтинг: 0 / 0
10.09.2004, 15:08
    #32689860
diml
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excell, ADO
2 Лох Позорный :
С Connection вроде проблем небыло но для чистоты эксперимента переназвал переменную - непомогло, таже ошибка: RecordSet is closed.

2 big-duke:
Попробовал и так, непомогло, таже ошибка: RecordSet is closed.
...
Рейтинг: 0 / 0
11.09.2004, 19:35
    #32690751
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excell, ADO
dimlВызываю в макросе процедуру из MsSQL2000, которая возвращает три набора.
(Проверял в QueryAnalyzer)
но ADO мне пишет ошибку :
Код: plaintext
1.
2.
     Err: 3704
     "Operation not allowed when the object is closed"
Т.е. как я понял она мне ничего не вернула.
Может я что не так делаю?
Вот кусок макроса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 ' <...> 

    Connection.Provider = "SQLOLEDB"
    'вот в это строке не надо Provider=SQLOLEDB  
    'или предыдущая не нужна 
    Connection.ConnectionString = "Provider=SQLOLEDB;User ID=" & User & ";Password=" & Pass & ";Initial Catalog=" & BD & ";Data Source=Folionew"

 '<...> 
     'после этой строки проверь состояние - оно open? 
    Connection.Open

    '   <...>   

   'по всему судя ошибка в этой строке - перепиши как     Set AdoCommand.ActiveConnection = Connection 
    AdoCommand.ActiveConnection = Connection
 <...>



Народ подскажите где ошибка! Я уже не знаю где копать.
...
Рейтинг: 0 / 0
14.09.2004, 09:53
    #32693044
diml
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excell, ADO
2 Victosha:
Спасибо все заработало. У-у-у-х.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excell, ADO / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]