Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / заполнение Datagrid при загрузке формы. / 19 сообщений из 19, страница 1 из 1
28.05.2007, 23:50
    #34556499
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Подскажите что я не так сделала?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Form_Load()
Dim strSQL As String
Dim cnn As New ADODB.Connection
Dim adr As New ADODB.Recordset
Dim cmd As ADODB.Command
Dim strConn As String
strConn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;" & _
          "DATABASE=doc; USER=root;PASSWORD=akista;OPTION=3"
cnn.CursorLocation = adUseServer
cnn.ConnectionString = strConn
cnn.Open
adr.Open "select * from docs ", cnn, adOpenStatic, adLockReadOnly
Set DataGrid1.DataSource = adr
adr.Close
cnn.Close
End Sub

в строке где пытаюсь присвоить датагриду данные: Set DataGrid1.DataSource = adr
пишет RunTime error 7004 "The rowset is not bookmarkadle"
...
Рейтинг: 0 / 0
29.05.2007, 02:02
    #34556583
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Код: plaintext
cnn.CursorLocation = adUseClient

Это во-первых.
А во-вторых прекращайте клепать код не понимая смысла написанного. Надо ж и документацию иногда читать, тогда и проблем бы небыло.

Конкретнее: в соеденении указан серверный курсор, а в рекордсете вы требуете статический, т.е. клиентский, но если есть явнбое указанбие параметра в соеденении то рекордсетные параметры не учитываются. Кстати не уверен поддерживает ли mysql серверный курсор вообще. Все это описано в документации. А также в гугле, если запустить поиск по описанию ошибки. Многие ссылки ведут на топики этого же форума с обьяснениями почему это происходит и чтобы их найти нужно потратить 2 минуты.

Гугл и Ф1 ваши друзья. Фотку в студию.



Magnus
...
Рейтинг: 0 / 0
29.05.2007, 09:27
    #34556834
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Просто когда я делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Form_Load()
Dim strSQL As String
Dim cnn As New ADODB.Connection
Dim adr As New ADODB.Recordset
Dim cmd As ADODB.Command
Dim strConn As String
strConn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;" & _
          "DATABASE=doc; USER=root;PASSWORD=akista;OPTION=3"
cnn.CursorLocation = adUseClient
cnn.ConnectionString = strConn
cnn.Open
adr.Open "select * from docs ", cnn, adOpenStatic, adLockReadOnly
Set DataGrid1.DataSource = adr
adr.Close
cnn.Close
End Sub
то поле грид остается пустым. Вот я и подумала что это не правильно.
...
Рейтинг: 0 / 0
29.05.2007, 09:51
    #34556898
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
мальчики, помогите! мне программу послезавтра отдать нужно! :( иначе директор съест!
...
Рейтинг: 0 / 0
29.05.2007, 09:57
    #34556913
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Код: plaintext
1.
Set DataGrid1.DataSource = adr
 adr.Close 
Лепим рекордсет и тут же его закрываем?
...
Рейтинг: 0 / 0
29.05.2007, 10:39
    #34557044
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
adr.Open "select * from docs ", cnn, adOpenStatic, adLockReadOnly
Set DataGrid1.DataSource = adr

я значит не права. :) как я понимаю эти две строки:
adr.Open "select * from docs ", cnn, adOpenStatic, adLockReadOnly - открываю свою таблицу.
Set DataGrid1.DataSource = adr - присваиваю гриду значение adr.

если строкой Set DataGrid1.DataSource = adr я грид только "прилепила" то как присвоить ему значение?
...
Рейтинг: 0 / 0
29.05.2007, 10:46
    #34557064
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Н-да. Нужно поосторожней с жаргоном.
Лепим - имеется ввиду присваиваем его датагриду, прилепляем.

Нужно просто убрать adr.Close.
...
Рейтинг: 0 / 0
29.05.2007, 10:59
    #34557122
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Спасибо! ты мой спаситель! :) вот только получилось после того, как я убрала и cnn.Close
критическая ли ошибка, если я не буду закрывать соединение?
...
Рейтинг: 0 / 0
29.05.2007, 11:44
    #34557305
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Не очень. Можно сделать Set adr.ActiveConnection = Nothing и закрыть соединение.
...
Рейтинг: 0 / 0
29.05.2007, 14:50
    #34558078
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Еще один вопрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub Command1_Click()
Dim strSQL As String
Dim cnn As New ADODB.Connection
Dim adr As New ADODB.Recordset
Dim cmd As ADODB.Command
Dim strConn As String
strConn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;" & _
          "DATABASE=doc; USER=root;PASSWORD=akista;OPTION=3"

cnn.CursorLocation = adUseClient
cnn.ConnectionString = strConn
cnn.Open
adr.Open "select * from docs", cnn, adOpenKeyset, adBathOptimistic 
adr.AddNew
adr![firm] = sdfasfasf
adr![User] = вапвапвапвап

End Sub
...
Рейтинг: 0 / 0
29.05.2007, 14:53
    #34558095
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
adr.Open "select * from docs", cnn, adOpenKeyset, adBathOptimistic в этой строке выдает ошибку 3001:
Аргументы имеют не верный тип,выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.
...
Рейтинг: 0 / 0
29.05.2007, 17:07
    #34558770
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Ну кто-нибудь, подскажите! По идее ошибка незначительная, но я немогу понять в чем она заключается.
...
Рейтинг: 0 / 0
29.05.2007, 18:15
    #34559097
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
adBathOptimistic? Оптимистичная ванная?
adLock Bat c hOptimistic
В таких случаях помогает Option Explicit в начале модуля.

Код: plaintext
1.
adr![firm] = sdfasfasf
adr![User] = вапвапвапвап
Текстовые данные должны быть в кавычках.
...
Рейтинг: 0 / 0
29.05.2007, 18:39
    #34559199
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Спасибо!!! не представляешь как я тебе благодарна! я думала уже завта к начальнику на ковер придется идти. :) еще раз спасибо!
...
Рейтинг: 0 / 0
29.05.2007, 19:35
    #34559324
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Фотку в студию =)
...
Рейтинг: 0 / 0
29.05.2007, 19:43
    #34559336
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Фотка в студии... а у меня очередная лажа... данные - не сохраняются. :(
...
Рейтинг: 0 / 0
29.05.2007, 19:46
    #34559341
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
прошу прощения, код не выложила...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Dim strSQL As String
Dim cnn As New ADODB.Connection
Dim adr As New ADODB.Recordset
Dim cmd As ADODB.Command
Dim strConn As String
strConn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;" & _
          "DATABASE=doc; USER=root;PASSWORD=akista;OPTION=3"

cnn.CursorLocation = adUseClient
cnn.ConnectionString = strConn
cnn.Open
adr.Open "select * from docs ", cnn, adOpenDynamic, adLockBatchOptimistic
adr.AddNew
adr![firm] = firm
adr![data_from] = thislo
adr![modyfy] = Command3.Caption
adr![User] = polzov
adr![viddoc] = tip_doc
adr![firma] = zakazchik
adr.Update
adr.Close
...
Рейтинг: 0 / 0
29.05.2007, 20:34
    #34559421
ЕленаMC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
Нашла ошибку... место adLockBatchOptimistic надо было adLockOptimistic :)
Antonariy - не правильно подсказал
...
Рейтинг: 0 / 0
30.05.2007, 09:40
    #34560030
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполнение Datagrid при загрузке формы.
При adLockBatchOptimistic нужно использовать UpdateBatch.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / заполнение Datagrid при загрузке формы. / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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