vb+MySql фатальная ошибка при запросе

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

vb+MySql фатальная ошибка при запросе

Сообщение Penumbra » 04.02.2009 (Ср) 3:31

есть БД MySQL
подключаюсь к ней так
Код: Выделить всё
...
Dim cnMySql As ADODB.Connection
Dim rsMySql As ADODB.Recordset
Set cnMySql = New ADODB.Connection
Set rsMySql = New ADODB.Recordset

sCn = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=test; User=admin;Password=admin;Option=3;"
cnMySql.CursorLocation = adUseServer
cnMySql.CommandTimeout = 120
cnMySql.ConnectionTimeout = 120
cnMySql.Open sCn
With rsMySql
            .ActiveConnection = cnMySql
            .LockType = adLockOptimistic
            .CursorType = adOpenStatic
            .Source = "select * from `meter_options` where `id`=5 "
            .Open
End With
...
SerialNumber = rsMySql.Fields(1)
MeterName = rsMySql.Fields(2)

при выполнении этого кода сам VB6 падает с фатальной ошибкои на строке SerialNumber = rsMySql.Fields(1)
хотя если вместо запроса .Source = "select * from `meter_options` where `id`=5 "
сделать .Source = "select * from `meter_options` " то все норм проходит :shock:
вопрос, почему при использовании в "where `id`=5" VB6 падает с фатальной ошибкои ?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: vb+MySql фатальная ошибка при запросе

Сообщение iGrok » 04.02.2009 (Ср) 13:47

Penumbra писал(а):при выполнении этого кода сам VB6 падает с фатальной ошибкои на строке SerialNumber = rsMySql.Fields(1)
хотя если вместо запроса .Source = "select * from `meter_options` where `id`=5 "
сделать .Source = "select * from `meter_options` " то все норм проходит :shock:
вопрос, почему при использовании в "where `id`=5" VB6 падает с фатальной ошибкои ?

Ты бы хоть номер ошибки привёл, а то у нас телепатов мало..

Пока могу предположить, что для первой записи в наборе второе(или первое? Не помню, как там индексация начинается) поле у тебя не NULL, а для записи с ID=5 - NULL.
И ты этот NULL пытаешься присвоить строковой переменной.

Если так - делай перед присвоением проверку
Код: Выделить всё
If Not IsNull (rsMySql.Fields(1)) Then SerialNumber = rsMySql.Fields(1)
label:
cli
jmp label

Penumbra
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 24.01.2009 (Сб) 13:36

Re: vb+MySql фатальная ошибка при запросе

Сообщение Penumbra » 04.02.2009 (Ср) 13:59

у меня VB6 падает с фатальной ошибкои
Изображение
error.JPG
error.JPG (83.5 Кб) Просмотров: 377

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: vb+MySql фатальная ошибка при запросе

Сообщение Денис » 04.02.2009 (Ср) 14:09

На 97% уверен в том, что ошибка здесь:
Код: Выделить всё
Driver={MySQL ODBC 5.1 Driver}

драйвер мусклы шалит. Попробуй другую версию драйвера.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Penumbra
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 24.01.2009 (Сб) 13:36

Re: vb+MySql фатальная ошибка при запросе

Сообщение Penumbra » 04.02.2009 (Ср) 22:31

спс, грохнул {MySQL ODBC 5.1 Driver}, поставил MySQL ODBC 3.51 все заработало)))


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList  
cron