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

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

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

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

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


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