Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу заполнить DataGrid / 6 сообщений из 6, страница 1 из 1
14.10.2001, 09:35
    #32015287
ulis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу заполнить DataGrid
На VB делаю проект, который юзает SQL базу (VB6 sp4 + SQL2000 sp1). Есть форма, в которой отбирается критерий поиска в базе и затем итог отображается в DataGrid контроле, который связан с ADO-контролом(adcSearch). Если на сервер посылается запрос вот такого типа:

strSQL = "select ФамилияБольного, ИмяБольного, ОтчествоБольного, КодДиагноза from tblСтатистика where tblСтатистика.ФамилияБольного = 'Иванова'"

Set rstS.ActiveConnection = cnn
rstS.CursorType = adOpenKeyset
rstS.LockType = adLockBatchOptimistic
rstS.Open strSQL
Set adcSearch.Recordset = rstS ' где adcSearch - имя ADO контрола, связанного с DataGrid

то данные отображаются. Если запрос чуть изменить, добавив связь с другой таблицей:

strSQL = "SELECT ФамилияБольного, ИмяБольного, ОтчествоБольного, tblДиагноз.ДиагнозБольного as диагноз FROM tblСтатистика INNER JOIN tblДиагноз ON tblСтатистика.КодДиагноза = tblДиагноз.КодДиагноза
where tblСтатистика.ФамилияБольного = 'Иванова'

то DataGrid контрол данными не заполняется, хотя, если проверить возвращаемое содержимое в наборе, то данные там есть:

Do Until rstS.EOF
Debug.Print rstS![диагноз]
rstS.MoveNext
Loop

В чем может быть проблема?
...
Рейтинг: 0 / 0
14.10.2001, 10:00
    #32015288
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу заполнить DataGrid
А зачем контрол?
Просто открываешь рекордсет и присваиваешь его Datasource грида, правда если редактировать надо, то курсор должен быть клиентским и по моему тип блокировки должен быть adLockPessimistic
...
Рейтинг: 0 / 0
14.10.2001, 12:16
    #32015289
ulis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу заполнить DataGrid
Ну если присвоить свойству DataSourse грида открытый рекорсет, т.е.
dtgSearch.DataSource = rstS ' dtgSearch - имя грида
то вываливается ошибка "Method or data member not found"
...
Рейтинг: 0 / 0
15.10.2001, 00:12
    #32015297
Павел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу заполнить DataGrid
Попробуйте явно задать CursorLocation = adUseClient. Сильно похоже что рткрывается серверный рекордсет. М в кчестве CursorType вполне достаточно Static.
...
Рейтинг: 0 / 0
15.10.2001, 02:59
    #32015306
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу заполнить DataGrid
2 ulis

Ха ха я тоже на этом попался вначале, просто в синтаксисе нужно не ошибаться

Правильно нужно вот так:
set dtgSearch.DataSource = rstS ' dtgSearch - имя грида
...
Рейтинг: 0 / 0
15.10.2001, 14:20
    #32015363
ulis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу заполнить DataGrid
Комбинация
rstS.CursorType = adOpenStatic
Set dtgSearch.DataSource = rstS
дали нужный результат
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу заполнить DataGrid / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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