Работа с MySQL Server

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Работа с MySQL Server

Сообщение burik » 21.06.2007 (Чт) 2:26

Здрасте!

Подскажите, как можно работать с MySQL Server'ом (подключение, выполнение запросов и т. д.)? Какую библиотеку/контрол юзать?

Заранее спасибо!
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.06.2007 (Чт) 3:09

Если руки чешутся и много свободного времени - можно юзать сокет и работать напрямую с сервером.

В противном случае:
http://share.fire-lines.ru/hacker/libmysqld.dll
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.06.2007 (Чт) 8:41

Жостко. А разве для него нет ODBC-драйвера?
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.06.2007 (Чт) 8:42

Если даже и есть, я бы стал юзать эту библу. Но это я :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.06.2007 (Чт) 9:00

Antonariy писал(а):А разве для него нет ODBC-драйвера?

Есть. Глюковатые, правда.
Lasciate ogni speranza, voi ch'entrate.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 21.06.2007 (Чт) 12:38

И как показывамет печальный опыт, удалённое соединение установить не всегда возможно. И лучше быть морально готовым организовать общение с БД по принципу типа: БД->PHP->XML->твоя_программа.
Salus populi suprema lex

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.06.2007 (Чт) 19:01

Я бы вместо PHP юзал свой сервер-переходник. В РНР столкнёшься со множеством трудностей. Например, ты выполнил запрос. Теперь твоя программа нуждается в последовательном получении записей. Т.е. тебе придётся с некоторыми интервалами вызывать mysql_fetch_row (а точнее mysql_fetch_assoc ). Всё бы хорошо. Но как твой скрипт узнает о том, что программе именно сейчас нужна следующая запись (row) ?

Протокол HTTP так уж устроен, что сначала данные идут в одну соторону, потом в другую. Т.е. после того как скрипт ответит тебе первой записью, ты уже ничего не сможешь ему сообщить.

Решения, конечно, есть - но они не самые красивые.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 22.06.2007 (Пт) 1:32

Ладно, а как юзать эту библу? Ну libmysqlb.dll?
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.06.2007 (Пт) 1:34

Так:

declare function mysql_***** lib "libmysqld.dll" ...
declare function mysql_******* lib "libmysqld.dll" ......
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 22.06.2007 (Пт) 2:25

Эт понятно, я наверное вопрос неправильно задал :(
Какие функции есть в этой библе?
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.06.2007 (Пт) 2:27

Их там 154. Перечислять что-ли? :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 22.06.2007 (Пт) 2:31

ну основные хотя бы...
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.06.2007 (Пт) 2:36

Посмотри это (причём, можешь почитать до конца, там довольно интересный спор идёт )

Потом это. (Оно хоть и для PHP, но функции те же, делают то же самое и имеют те же самые аргументы. Правда некоторых функций, перечисленных на той странице нет в библе, и наоборот, в php нет многих функций, которые есть в библе (ибо не нужны они там)).

Потом найди .h-файл и приведи его к виду Declare-Function-строчек.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 22.06.2007 (Пт) 3:00

Кароче там функции как в PHP? А я ведь так сразу и подумал, тлько там по ходу нет функции mysql_connect :( вот я слегка и растерялся...

Ладно щас попробую разобраться. Спасибо Хакер, ну и остальным!
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

dedmakar
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 08.02.2007 (Чт) 21:16

Сообщение dedmakar » 30.10.2007 (Вт) 1:20

Хакер, можеш продемонстрировать соединение с сервером через "libmysqld.dll", а то я не понял :
Так:

declare function mysql_***** lib "libmysqld.dll" ...
declare function mysql_******* lib "libmysqld.dll" ......

Да и ссылка не помогла.

dedmakar
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 08.02.2007 (Чт) 21:16

Сообщение dedmakar » 30.10.2007 (Вт) 12:37

Я не могу добавить библиотеку libmySQL. Через компоненты и References не добавляется. Ошибка!!!

С соединением разобрался...
Код: Выделить всё

  Public Declare Function mysql_init Lib "libmySQL" (ByVal lMYSQL As Integer) As Integer
    Public Declare Function mysql_real_connect Lib "libmySQL" (ByVal lMYSQL As Integer, ByVal sHostName As String, ByVal sUserName As String, ByVal sPassword As String, ByVal sDbName As String, ByVal lPortNum As Integer, ByVal sSocketName As String, ByVal lFlags As Integer) As Integer
    Public Declare Function mysql_query Lib "libmySQL" (ByVal lMYSQL As Integer, ByVal Query As String) As Long
    Public Declare Function mysql_store_result Lib "libmysql.dll" (ByVal lMYSQL As Integer) As Long
    Public Declare Sub mysql_close Lib "libmysql.dll" (ByVal ms As Long)


Private Sub Form_load()
        Dim mlMYSQL As Integer
        mlMYSQL = mysql_init(mlMYSQL)
        If mlMYSQL = 0 Then
            MsgBox (" no connection handler")
        End If
        If mysql_real_connect(mlMYSQL, "localhost", "root", "0", "test", "3306", "", 0) = 0 Then
            MsgBox ("во блин !")
        Else '
            Dim s As String
            s = "SELECT * FROM `main` WHERE 1"
             Console.WriteLine (mysql_query(mlMYSQL, s))
           
           Console.WriteLine (mysql_store_result(mlMYSQL))
           End If
        Console.Read
End Sub

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.10.2007 (Вт) 12:42

Через компоненты и References не добавляется.

Дык, и не должна.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

HiSER
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 04.07.2007 (Ср) 18:17

Сообщение HiSER » 30.10.2007 (Вт) 19:40

http://dev.mysql.com/downloads/

Connector/ODBC 5.1
Connector/ODBC 3.51

dedmakar
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 08.02.2007 (Чт) 21:16

Сообщение dedmakar » 30.10.2007 (Вт) 19:57

HiSER
Это понятно!!!


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

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

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

    TopList