Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: ADO + DataGrid Добавлено: 06.02.03 05:27  

Автор вопроса:  Павел | Web-сайт: www.vbnet.ru | ICQ: 326066673 

  Пытаюсь связать в коде DataGrid и ADODB.Recordset. Ничего не получается - данные в DataGrid не отображаются. Подскажите, в чём тут закавыка...

  Set ConnGrid = CreateObject("ADODB.Connection")
    Set RSGrid = CreateObject("ADODB.Recordset")
    CurDir = AppPath("db\forum.mdb")
    ConnGrid.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurDir
    RSGrid.Open "Select id,subject,username,mail From messages WHERE thread_parent = 0 and is_delete <> true Order By data DESC", ConnGrid, adOpenKeyset
    Set Grid.DataSource = RSGrid
    Grid.Refresh

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 vitus



Вопросов: 9
Ответов: 43
 Web-сайт: www.jgukz.narod.ru
 Профиль | | #1
Добавлено: 06.02.03 07:05

Попробуй вот так:

Я тут немного поэкспериментировал и закоментировал пару строк без них тоже работает

 

Private Sub Command1_Click()
Dim CurDir As String
'Dim ConnGrid As ADODB.Connection
'Dim RSGrid As ADODB.Recordset

Set ConnGrid = CreateObject("ADODB.Connection")
Set RSGrid = CreateObject("ADODB.Recordset")
'Set ConnGrid = New ADODB.Connection
'Set RSGrid = New ADODB.Recordset

    CurDir = App.Path & ("\db\dbna.mdb") '  здесь надо было добавить точку и слеш
    ConnGrid.Mode = adModeReadWrite
    ConnGrid.CursorLocation = adUseClient
    ConnGrid.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurDir
    RSGrid.Open "Select * From facultet", ConnGrid, adOpenDynamic, adLockOptimistic, adCmdText         '    adOpenKeyset это лишнее

    Set Grid.DataSource = RSGrid
    Grid.Refresh

End Sub

Надеюсь тебе это поможет.

Ответить

Номер ответа: 2
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #2
Добавлено: 06.02.03 08:33

Насчёт точки и слэша - это у меня нормально было. AppPath - это моя функция. Ей передаёшь имя файла, а она возвращает нормальный полный путь.

Насчёт adOpenKeyset - без него VB ругался, что что-то там not bookmarkable.

Насчёт всего остального - спасибо, сейчас попробую.

Кстати, ConnGrid.Mode  что задаёт? Режим доступа к гриду? А если поставить read, то грид будет доступен только для чтения?

Ответить

Номер ответа: 3
Автор ответа:
 Alex&r



Вопросов: 10
Ответов: 105
 Профиль | | #3 Добавлено: 06.02.03 09:36

Mode указывает разрешения для изменения данных в Connection (не к гриду). Ты же пишешь:

Set ConnGrid = CreateObject("ADODB.Connection")


 Использование adModeRead повышает производительность. Для изменения структуры БД с помощью SQL используется adModeShareExclusive. Опять-таки, для сокращения нагрузки на соединения БД(экономии памяти), перед изменением свойств connection закрывают(Close), а затем опять открывают(Open). Для проверки состояния используется State.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам