Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Run-time error '7004' / 8 сообщений из 8, страница 1 из 1
08.10.2003, 16:42
    #32287940
Ivan_81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Run-time error '7004'
Подскожите пожалуйста что за ошибка такая:

Run-time error '7004'
The rowset is not bookmarkable

Привожу код:

В модуль класса:
_____________________________________________________________________
Private mrsCustomer As ADODB.Recordset

Private Sub Class_Initialize()
Set mrsCustomer = New ADODB.Recordset
mrsCustomer.Source = "select * from tblCustomer"
mrsCustomer.CursorType = adOpenKeyset
mrsCustomer.LockType = adLockOptimistic
mrsCustomer.ActiveConnection = "DSN=JetNovelty;"
mrsCustomer.Open

DataMembers.Add "Customers"
End Sub

Private Sub Class_GetDataMember(DataMember As String, Data As Object)
Select Case DataMember
Case ""
Set Data = Nothing
Case "Customers"
Set Data = mrsCustomer
Case Else
' Raise an error here
End Select
End Sub
_____________________________________________________________________

В frmMain :
_____________________________________________________________________
Private mCustData As CCustData

Private Sub Form_Load()
' Create the data source object
Set mCustData = New CCustData

' Bind the object to grid
Set DataGrid1.DataSource = mCustData
DataGrid1.DataMember = "Customers" '<---------Здесь вылетает ошибка

End Sub
_____________________________________________________________________

На форме DataGrid.

Где ошибка?
Может кто подскажет.
...
Рейтинг: 0 / 0
08.10.2003, 16:46
    #32287951
Ivan_81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Run-time error '7004'
Пардон, ошибка вылетает на END SUB завершающем Sub Class_GetDataMember
После прохода DataGrid1.DataMember = "Customers"
...
Рейтинг: 0 / 0
08.10.2003, 16:51
    #32287959
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Run-time error '7004'
это значит, что провайдер для курсора типа adOpenKeyset не поддерживает adBookmark (bookmark требуется для показа данных в гриде). поробуй вместо adOpenKeyset использовать adOpenStatic - этот точно поддерживает. или перейди на другого провайдера (например, OleDb, если он есть для твоей БД)
...
Рейтинг: 0 / 0
08.10.2003, 16:56
    #32287975
Ivan_81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Run-time error '7004'
ставлю курсор adOpenStatic (3), а после mrsCustomer.Open, курсор сам (чтоб ему) стоновится mrsCustomer.Open (1)
...
Рейтинг: 0 / 0
08.10.2003, 17:13
    #32288007
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Run-time error '7004'
добавь свойство в Connection или Recorset
CursorLocation=adUseClient
...
Рейтинг: 0 / 0
08.10.2003, 17:27
    #32288026
Ivan_81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Run-time error '7004'
сделал так:

mrsCustomer.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\novelty.mdb;Persist Security Info=False;CursorLocation=adUseClient"

незнаю правильно ли я понял совет, но вылетать стало на этой строке с ошибкой "Невозможно найти устанавливаемый ISAM"

PS:может я чё не так понял?
...
Рейтинг: 0 / 0
08.10.2003, 17:32
    #32288038
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Run-time error '7004'
до открытия recordset
Код: plaintext
1.
2.
3.
Set mrsCustomer = New ADODB.Recordset 
mrsCustomer.CursorLocation=adUseClient
...
mrsCustomer.Open
...
Рейтинг: 0 / 0
08.10.2003, 17:37
    #32288048
Ivan_81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Run-time error '7004'
ЗАРАБОЛАЛО!!!!!!!!!!!!!
вот спосибо!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Run-time error '7004' / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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