Проблема с recordset (DAO)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SERG_B
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.03.2005 (Вт) 2:24

Проблема с recordset (DAO)

Сообщение SERG_B » 01.03.2005 (Вт) 2:43

Столкнулся со странной штукой.
Есть DAO recordset, выбирает 11 полей из базы MySQL.
При переходе на следующую запись теряется значение 11-го поля.
С остальными полями все ОК.
Обнаружил, что оно теряется всегда, при повторном обращении к нему.
(даже если его в MsgBox вывожу)
Кто знает в чем может быть дело, напишите.
Спасибо.
SERG.

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 01.03.2005 (Вт) 16:09

Код бы взглянуть.
Век живи - век учись!
www.detal-plast.narod.ru

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 01.03.2005 (Вт) 17:47

Ммм. А что именно значит - "пропадает"? Это как - выставляется в NULL? И в какой записи - в той, с которой уходишь, или в той, на которую переходишь? И кстати - версия ODBC-дров какая?

SERG_B
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.03.2005 (Вт) 2:24

Код

Сообщение SERG_B » 01.03.2005 (Вт) 20:16

Вот код:

Public wrkODBC As DAO.Workspace
Public conODBC As DAO.Connection
Public rsGoods As DAO.Recordset
Private Sub Form_Load()
Set wrkODBC = CreateWorkspace(ODBCWorkspace, SERG, "", dbUseODBC)
Set conODBC = wrkODBC.OpenConnection("ConnectODBC", , , "ODBC;DATABASE=planet;UID=SERG;PWD=;DSN=DB")
Set rsGoods = conODBC.OpenRecordset("SELECT good.id_good, good.name, good.id_brand, brand.brand, good.id_type, type.type, good.id_sport, sport.sport, good.id_season, season.season, good.description FROM good, brand, type, sport, season WHERE good.id_brand=brand.id_brand AND good.id_type=type.id_type AND good.id_sport=sport.id_sport AND good.id_season= season.id_season ORDER BY good.id_good", dbOpenDynamic)
With rsGoods
.MoveFirst
Do While Not .EOF
MsgBox .Fields(10)
MsgBox .Fields(10)
.MoveNext
Loop
End With
End Sub

При загрузке в первом msgbox - нужный текст, второй - пустой. Все остальные тоже пустые.
Версия драйвера: 2.5
Спасибо.
SERG.

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 01.03.2005 (Вт) 22:02

Код: Выделить всё
Public wrkODBC As DAO.Database
Public rsGoods As DAO.Recordset
Public sSQL As String


Private Sub Form_Load()
Set wrkODBC = DAO.OpenDatabase(App.Path & "\ dbUseODBC.mdb")

sSQL ="SELECT good.id_good, good.name, good.id_brand, brand.brand, good.id_type, type.type, good.id_sport, sport.sport, good.id_season, season.season, good.description FROM good, brand, type, sport, season WHERE good.id_brand=brand.id_brand AND good.id_type=type.id_type AND good.id_sport=sport.id_sport AND good.id_season= season.id_season ORDER BY good.id_good"

    Set rs = wrkODBC.OpenRecordset(sSQL)

With rsGoods
.MoveFirst
Do While Not .EOF
MsgBox .Fields(10)
MsgBox .Fields(10)
.MoveNext
Loop
End With
End Sub

Если правильно понял dbUseODBC - твоя БД, если нет, поставь вместо dbUseODBC имя твоей БД. не забудь в Reference поставить ссылку на Microsoft DAO Object Library.
Попробуй, авось заработает.
Век живи - век учись!
www.detal-plast.narod.ru

SERG_B
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.03.2005 (Вт) 2:24

Все! Нашел!

Сообщение SERG_B » 02.03.2005 (Ср) 0:29

С соединением все ок. Там бы иначе другие ошибки возникали бы.
И DAO естественно подключен! :)

Дело было в типе данных!!!
MyODBC глючил при работе с полями типов: tinytext и text.
Поставил varchar и все ок!
Спасибо.
SERG.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 147

    TopList  
cron