Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADODB.RECORDSET NextRecordset / 25 сообщений из 25, страница 1 из 1
18.10.2010, 08:52
    #36904350
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Попытлся использовать NextRecordset

Код: plaintext
1.
2.
3.
Dim rs as ADODB.Recordset
Set rs = New ADODB.Recordset
sql = "select * from table; select * from table "
rs.Open sql, conn, adOpenStatic, adLockReadOnly

но встроке rs.Open sql, conn, adOpenStatic, adLockReadOnly возникает ошибка ODBC не поддерживает такие св-ва
если оставить в переменной sql одно предложение select все работает
версия ODBC 3.51
...
Рейтинг: 0 / 0
18.10.2010, 09:08
    #36904362
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
valdemar_rusql = "select * from table; select * from table "Почему у вас запрос дублируется, может в этом дело?
table - это название таблицы или переменная с её названием?
...
Рейтинг: 0 / 0
18.10.2010, 09:13
    #36904367
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
valdemar_ru,

а) СУБД?
б) Как именно используете NextRecorset?

(подробности, блин, где подробности)
...
Рейтинг: 0 / 0
18.10.2010, 09:18
    #36904373
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Djon Playervaldemar_rusql = "select * from table; select * from table "Почему у вас запрос дублируется, может в этом дело?
table - это название таблицы или переменная с её названием?

на MSDN запрос именно таким образом оформляется
http://msdn.microsoft.com/en-us/library/ms677569(VS.85).aspx
как я понимял Recordset должен взять первый Select после NextRecordset второй и.т.д.
а у меня даже и до этого дело не доходит
...
Рейтинг: 0 / 0
18.10.2010, 09:21
    #36904378
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Shocker.Pro,
Mysql 5.0.67-community-nt

нашел пример по нему и делал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub cmdLoad_Click()
      Dim rs As ADODB.Recordset
      Set rs = New ADODB.Recordset

      'Run multi select statment
    rs.Open "SELECT au_lname FROM authors; SELECT fname FROM  employee", "dsn=pubs", adOpenForwardOnly, adLockReadOnly

      Do While Not rs.EOF
            Me.lstAu.AddItem rs.Fields( 0 )
            rs.MoveNext
      Loop
      'Get Next rs
      Set rs = rs.NextRecordset

      Do While Not rs.EOF
            Me.lstEmp.AddItem rs.Fields( 0 )
            rs.MoveNext
      Loop

      Set rs = Nothing
End Sub
...
Рейтинг: 0 / 0
18.10.2010, 09:29
    #36904389
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
valdemar_ru,
rs ADODB.Recordset объявлена как Public
Frm_connect.conn объявлена как Public
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim sql As String
Set rs = New ADODB.Recordset 
Dim a As Integer, i As Integer
sql = "select count(Поле1) as "Кол-во" from table; select Поле1 from table"
rs.Open sql, Frm_connect.conn, adOpenStatic, adLockReadOnly
i = rs.Fields("Кол-во")
Set rs = rs.NextRecordset
a =  1 
   For a =  1  To i
        Cmbx_LS.AddItem rs.Fields("Поле1")
        rs.MoveNext
   Next a
rs.Close: Set rs = Nothing

вот как пытаюсь использовать
...
Рейтинг: 0 / 0
18.10.2010, 09:41
    #36904404
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
valdemar_ruна MSDN запрос именно таким образом оформляется
http://msdn.microsoft.com/en-us/library/ms677569(VS.85).aspx

только там используется oledb....
...
Рейтинг: 0 / 0
18.10.2010, 10:41
    #36904511
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Shocker.Pro,

Подскажите какой драйвер лучше использовать ?
...
Рейтинг: 0 / 0
18.10.2010, 11:50
    #36904678
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
valdemar_ruShocker.Pro,

Подскажите какой драйвер лучше использовать ?
я, честно говоря, лучше промолчу, ибо работал с MySQL давно и через MyODBC

Тут есть народ, работающий сейчас с MySQL (Адука, в частности), подождем их ответа.

Вообще, есть хороший сайтик
...
Рейтинг: 0 / 0
18.10.2010, 12:27
    #36904780
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
ТС, зачем вам такой изврат?
а не проще ли два рекордсета для каждого селекта открыть?
...
Рейтинг: 0 / 0
18.10.2010, 12:39
    #36904818
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Konst_One,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim sql As String
Set rs = New ADODB.Recordset
Dim a As Integer, i As Integer

sql = "select count(Поле1) as "Кол-во" from table "
rs.Open sql, Frm_connect.conn, adOpenStatic, adLockReadOnly
i = rs.Fields("Кол-во")
rs.Close: Set rs = Nothing
Set rs = New ADODB.Recordset
sql = "select Поле1 from table"
rs.Open sql, Frm_connect.conn, adOpenStatic, adLockReadOnly
a =  1 
   For a =  1  To i
        Cmbx_LS.AddItem rs.Fields("Поле1")
        rs.MoveNext
   Next a
rs.Close: Set rs = Nothing
Вот так вы имеете ввиду ?
...
Рейтинг: 0 / 0
18.10.2010, 12:43
    #36904835
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Нет, он имел виду
rs1.Open
rs2.Open
А у вас rs.Open, rs.Close, rs.Open
...
Рейтинг: 0 / 0
18.10.2010, 12:47
    #36904849
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
valdemar_ruKonst_One,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim sql As String
Set rs = New ADODB.Recordset
Dim a As Integer, i As Integer

sql = "select count(Поле1) as "Кол-во" from table "
rs.Open sql, Frm_connect.conn, adOpenStatic, adLockReadOnly
i = rs.Fields("Кол-во")
rs.Close: Set rs = Nothing
Set rs = New ADODB.Recordset
sql = "select Поле1 from table"
rs.Open sql, Frm_connect.conn, adOpenStatic, adLockReadOnly
a =  1 
   For a =  1  To i
        Cmbx_LS.AddItem rs.Fields("Поле1")
        rs.MoveNext
   Next a
rs.Close: Set rs = Nothing
Вот так вы имеете ввиду ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim sql As String
Dim rs as ADODB.Recordset

sql = "select [Поле1] from [table]"
Set rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Set Rs.ActiveConnection =  Frm_connect.conn
rs.Open sql,, adOpenStatic, adLockReadOnly
Do While Not rs.EOF
     Cmbx_LS.AddItem rs("Поле1").Value
     rs.MoveNext
Loop
Set rs = Nothing
...
Рейтинг: 0 / 0
18.10.2010, 13:08
    #36904905
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Konst_One,

если не сложно объясните
пожалуйста эти две строчки
Код: plaintext
1.
Rs.CursorLocation = adUseClient
Set Rs.ActiveConnection =  Frm_connect.conn
...
Рейтинг: 0 / 0
18.10.2010, 13:13
    #36904921
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
- открываем клиентский курсор (все данные сразу получаются на клиенте и мы знаем точное кол-во полученных записей)
- передаём контекс соединения (существующий объект ADODB.Connection) в рекордсет для работы
...
Рейтинг: 0 / 0
18.10.2010, 13:15
    #36904927
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Konst_One,
спасибо
...
Рейтинг: 0 / 0
18.10.2010, 17:05
    #36905713
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Konst_OneТС, зачем вам такой изврат?
а не проще ли два рекордсета для каждого селекта открыть?

Вообще-то с NextRecordset зачастую удобней. К примеру, процедура может вернуть несколько Recordset-ов за раз. Так что тут нет изврата.
...
Рейтинг: 0 / 0
18.10.2010, 17:08
    #36905722
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
AndrFKonst_OneТС, зачем вам такой изврат?
а не проще ли два рекордсета для каждого селекта открыть?

Вообще-то с NextRecordset зачастую удобней. К примеру, процедура может вернуть несколько Recordset-ов за раз. Так что тут нет изврата.

про ХП у ТС речи не идёт, а так ,конечно, есть случае , где реально необходимо. те же запросы с COMPUTE и тп
...
Рейтинг: 0 / 0
19.10.2010, 08:22
    #36906572
valdemar_ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Так какой дравер лучше использовать ?
...
Рейтинг: 0 / 0
19.10.2010, 11:49
    #36907080
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
OLE DB, конечно, для вашей базы данных
...
Рейтинг: 0 / 0
19.10.2010, 18:16
    #36908388
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Konst_OneOLE DB, конечно, для вашей базы данныхЭто очень смелый, и бессмысленный совет.
OLE DB это всего-лишь интерфейс и драйверов его предоставляющих может быть много (и при этом все они могут быть глючными).
...
Рейтинг: 0 / 0
20.10.2010, 11:17
    #36909058
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
White OwlKonst_OneOLE DB, конечно, для вашей базы данныхЭто очень смелый, и бессмысленный совет.
OLE DB это всего-лишь интерфейс и драйверов его предоставляющих может быть много (и при этом все они могут быть глючными).

бывает и такое конечно, никто не спорит. но всё-таки лучше чем ODBC
...
Рейтинг: 0 / 0
20.10.2010, 17:51
    #36910251
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Konst_OneWhite OwlKonst_OneOLE DB, конечно, для вашей базы данныхЭто очень смелый, и бессмысленный совет.OLE DB это всего-лишь интерфейс и драйверов его предоставляющих может быть много (и при этом все они могут быть глючными).бывает и такое конечно, никто не спорит. но всё-таки лучше чем ODBCГлупости. Если начать сравнивать ODBC с OLE DB, то ODBC выиграет по всем статьям. Более кривой и неудобный интерфейс чем у OLE DB сочинить трудно. Но это вопрос далеко не для VB форума, потому что из VB ты с OLE DB даже работать напрямую не сможешь, только через враппер типа ADO.

А для valdemar_ru совет только один: спрашивать на форуме по MySQL какой из доступных ныне драйверов самый лучший. И не заморачиваться на тему ODBC vs OLE DB. Вот когда он начнет собственные драйвера или врапперы писать, тогда и будет об интерфейсах думать. А пока он сидит на VB с ADO - любой драйвер пойдет, лишь бы работал.
...
Рейтинг: 0 / 0
20.10.2010, 17:53
    #36910259
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
да с MySQL всё печально, есть только нормальные платные OLE DB providers
...
Рейтинг: 0 / 0
21.10.2010, 03:33
    #36910943
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.RECORDSET NextRecordset
Konst_Oneда с MySQL всё печально, есть только нормальные платные OLE DB providers
"Длительность минуты зависит от того, по какую сторону двери туалета вы находитесь" (с) не мой
Если вы админ своей базы, плюс вы имеете до неё скоростной канал (либо этот хостинг - у вас локально) - любой селект отработает на-раз, и быстро.
Если вы просто "знаете", как запросить - любой селект отработает со скоростью вашего входящего канала.
Если вы делаете нормальную систему - то не на Офисе...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADODB.RECORDSET NextRecordset / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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