Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Access2000+SQL2000 - умираю / 13 сообщений из 13, страница 1 из 1
19.09.2002, 19:32:01
    #32051785
woka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
Уже отчаялся в борьбе с Access2000+SQL2000 (извините, что не в тему форума)

Работаю с базой MDB в Access2000, источником формы хочу назначить ХП MSSQL, а когда пишу
Set Me.Recordset = rst5 , то Акцесс ругается, если эту строку комментарю, то всё работает! А мне очень надо, чтобы источником формы была ХП с параметрами. В чёт тут грабли - уже 18 часов убил, не могу понять, и в форумах по Акцесс говорят, что вроде должно работать. Что за невезение.....


Private Sub Form_Open(Cancel As Integer)

Dim rst5 As Recordset
Dim cmd As ADODB.Command, prm As ADODB.Parameter
Dim cnn As ADODB.Connection

Set cnn = New ADODB.Connection
With cnn
.Provider = "SQLOLEDB"
.Properties("Data Source") = "410INFPROGNS"
.Properties("Initial Catalog") = "m_re"
.Properties("Integrated Security") = "SSPI"
.Open
End With

Set cmd = New ADODB.Command
cmd.ActiveConnection = cnn
cmd.CommandText = "p_avtomodel_get"
cmd.CommandType = adCmdStoredProc
Set prm = cmd.CreateParameter("id_marka", adInteger, adParamInput, , 1)
cmd.Parameters.Append prm
Set prm = cmd.CreateParameter("id_atype", adInteger, adParamInput, , 2)
cmd.Parameters.Append prm

Set rst5 = cmd.Execute()
Set Me.Recordset = rst5 ' ======== Тут ругается!!!

With rst5
If Not .EOF Then
Do While Not .EOF
MsgBox .Fields(1)
.MoveNext
Loop
Else
MsgBox "No records"
End If

.Close
End With

Set rst5 = Nothing
Set cmd = Nothing
cnn.Close
Set cnn = Nothing

End Sub
...
Рейтинг: 0 / 0
19.09.2002, 19:43:56
    #32051786
Andrew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
А как ругается то?
...
Рейтинг: 0 / 0
19.09.2002, 20:03:44
    #32051787
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
Загляни в процедуру и поставь, если нету, в самом начале
SET NOCOUNT ON
...
Рейтинг: 0 / 0
19.09.2002, 23:35:02
    #32051801
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
А на какие библиотеки у тебя ссылки выставлены? Может, имеет смысл сделать объявление Dim rst5 As ADODB. Recordset?
...
Рейтинг: 0 / 0
20.09.2002, 09:21:30
    #32051826
woka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
SET NOCOUNT ON выставлено

пробовал объявить и
Dim rst5 As ADODB.Recordset
и просто
Dim rst5 As Recordset

ссылки на библиотеки стоят и на ADO2.1 - 2.7(разные пробовал) и на DAO3.6 (и так и сяк комбинировал)

А ругается так, что Указанный объект не может являться значением свойства "Набор записей" (Recordset)

возвращаемый rst5 - проверял, это ADO Recordset, работаю в Access2000 (SP2) с базами mdb
...
Рейтинг: 0 / 0
20.09.2002, 09:42:08
    #32051833
av_2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
я когда-то делал так

1. Создаю запрос к серверу, в котором написано
EXEC my_proc param1, param2 ...
2. Источник данных для формы - пустая строка

3. В коде меняю строку запроса, подставляя нужные параметры

4. Назначаю запрос источником данных для формы

Все работало в Access 97 и 2000
...
Рейтинг: 0 / 0
20.09.2002, 10:14:14
    #32051840
woka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
С заменой строки запроса, где меняю параметры у ХП, и дальнейшей подменой источника формы у меня идея тоже была, я добился - работает!

Но всё же такой вариант работает через ODBC, а это потери в производительности, ведь так?

Всё же хотелось бы работать в классическом варианте с ADO, где можно задавть тип рекордсета, строку подключения и т.д. и т.п. КАК БЫТЬ ???
...
Рейтинг: 0 / 0
20.09.2002, 10:26:07
    #32051843
dao
dao
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
Если мне память не изменяет - 2000 accesse по умолчанию работает с dao а не с адо - может быть собака зарыта тут - не совпадают типы рекордсетов - один dao второй ado (форма - dao)
...
Рейтинг: 0 / 0
20.09.2002, 10:27:21
    #32051844
av_2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
По-моему это поддерживается в Офисе XP
...
Рейтинг: 0 / 0
20.09.2002, 10:41:19
    #32051850
woka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
А вот по поводу того, что разные типы рекордсетов в ACCESS2000 тут у меня тоже подозрение....Счас попоробую лицензионный Office XP поставить, посмотрю
...
Рейтинг: 0 / 0
20.09.2002, 11:14:20
    #32051867
woka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
Поставил XP - тоже ругается. Может, какие свойства рекордсета формы надо выставить???
...
Рейтинг: 0 / 0
20.09.2002, 12:17:19
    #32051897
Ден
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
Попробуй у свойства соединения поставить
CursorLocation =adUseClient
У меня с назначением рекордсета из ХП форме проблем не возникало...
...
Рейтинг: 0 / 0
20.09.2002, 12:38:36
    #32051908
woka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access2000+SQL2000 - умираю
СПААААААСИБО ДЕНУ!!!!

Низкий поклон, заработало!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Access2000+SQL2000 - умираю / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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