Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Взаимодействие с MySQL (http://forum.oszone.net/showthread.php?t=129654)

morgan1991 23-01-2009 21:40 1017276

Взаимодействие с MySQL
 
Скажите пожалуйста может ли автоит работатьс БД MySQL?
Если да то как, или дайте ссылку где почитать....
Только пожалуйста на русском языке....
Лучше для Автоит версии 3.2.8.1 если никак тогда 3.2.12.1
Заранее спасибо.

Creat0R 23-01-2009 22:02 1017293

Цитата:

Цитата morgan1991
может ли автоит работатьс БД MySQL? »

Цитата:

Цитата morgan1991
Только пожалуйста на русском языке »

На русском найти не удалось, есть на англ.:

SQLite semi Embedded database functionality in AutoIt
MySQL UDFs 1
MySQL UDFs 2

Последний самый новый.

morgan1991 23-01-2009 23:53 1017471

Ничего не понял...
Может скажете просто как приконектиться потом создать таблицу с двумя столбцами, вписать в третью строку первого столбца значение, потом удалить второй столбец, считать значение с третьей строки первого столбца и удалить всю таблицу?
Мне для обучения

Creat0R 24-01-2009 01:44 1017552

Цитата:

Цитата morgan1991
как приконектиться потом создать таблицу с двумя столбцами »

Я с этой библиотекой особо не работал, поэтому помочь возможности нет :( Но уверен что ответ можно найти почитав внимательно примеры и доки от функции.

morgan1991 31-03-2009 23:43 1080607

Цитата:

Цитата Creat0R
Но уверен что ответ можно найти почитав внимательно примеры и доки »

Прочитал я всё но там ни одного примера коннекта. Там только открытие файла БД я о таком даже не слышал. Мне нужно всего лишь чсчитать данные с определённой ячейки. Может кто с БД работал? помогите...

Creat0R 31-03-2009 23:54 1080614

Цитата:

Цитата morgan1991
там ни одного примера коннекта »

А тут, не то?

morgan1991 01-04-2009 00:24 1080643

Цитата:

Цитата Creat0R
А тут, не то? »

Чтобы скрипт работал нужно скачатьь пачку библиотек. В которых есть файлик libmysql.dll
Скажите пожалуйста как его зарегестрировать в системе? (win XP)

proxy 01-04-2009 00:56 1080673

Цитата:

Цитата morgan1991
Скажите пожалуйста как его зарегестрировать в системе? (win XP) »

а точно ли её надо регистрировать? недостаточно положить рядом с исполняемым файлом скрипта?

что бы разегистрировать используйте: _MySQL_InitLibrary()

Покапайтесь в файле test.au3, кторый в архиве с UDF MySql с ссылки "MySQL UDFs 2".
Там все есть, думаю нет смысла копировать от туда и вставлять сюда ))

И уже если не получится закидывайте сюда код вашего скрипта ..

morgan1991 01-04-2009 01:15 1080691

В том то и дело что я положил все файлы с архива включая dll в папку include дак вот скрипт не конектится к базе:

Код:

#include <array.au3>
#include "mysql.au3"

_MySQL_InitLibrary()
If @error Then Exit MsgBox(0, '', "")
$MysqlConn = _MySQL_Init()

$connected = _MySQL_Real_Connect($MysqlConn, "ХОСТ","ПОЛЬЗОВАТЕЛЬ","ПАРОЛЬ","БД")
If $connected = 0 Then Exit MsgBox(16, 'Connection Error', _MySQL_Error($MysqlConn))

$query = "SELECT * FROM users WHERE yam=`"  & _MySQL_RealEsacepString($yam) & "` AND password=`" & _MySQL_RealEsacepString($pass) & "`"
_MySQL_Real_Query($MysqlConn, $query)

;------------------------------------------------------


;------------------------------------------------------

$res = _MySQL_Store_Result($MysqlConn)
$fields = _MySQL_Num_Fields($res)

; Abfrage freigeben
_MySQL_Free_Result($res)

; Verbindung beenden
_MySQL_Close($MysqlConn)
; MYSQL beenden
_MySQL_EndLibrary()

Выдаёт вот это:

MsgBox(0, '', "")

proxy 01-04-2009 01:23 1080695

Цитата:

Цитата morgan1991
В том то и дело что я положил все файлы с архива включая dll в папку include дак вот скрипт не конектится к базе: »

помойму, libmysql.dll, должна находится в папке где находится скрипт...

morgan1991 01-04-2009 01:28 1080701

Цитата:

Цитата proxy
в папке где находится скрипт... »

Положил, теперь он долго думает и в конце вылетает ошибка:

Цитата:

Can't connect to MySQL server on 'тут хост' (10060)

proxy 01-04-2009 01:36 1080704

Цитата:

Can't connect to MySQL server on 'тут хост' (10060)
адрес хоста же не=тут хост
а что нить к минимум=localhost
?

morgan1991 01-04-2009 01:44 1080711

Цитата:

Цитата proxy
адрес хоста же не=тут хост »

не дак адрес нормальный указан и юзер и пароль и бд это я просто для форума так написал.

proxy 01-04-2009 01:49 1080712

Цитата:

Цитата proxy
Can't connect to MySQL server on 'тут хост' (10060) »

1. тогда все ок - ошибка подключения.
есть возможность проверить другими средствами? к примеру обычный php сценайри коннектиться нормально этот адрес?

2. попробуйте использовать другую UDF по sql...

morgan1991 01-04-2009 15:31 1081127

Цитата:

Цитата proxy
к примеру обычный php сценайри коннектиться нормально этот адрес? »

Да нормально.
Цитата:

Цитата proxy
попробуйте использовать другую UDF по sql.. »

попробую поискать.

D_Master 02-04-2009 04:27 1081640

В какой-то из библиотек (качал давно, уже не помню) перед работой скриптов надо было установить драйвер ODBC MySQL.

proxy 02-04-2009 16:41 1082058

Цитата:

Цитата D_Master
В какой-то из библиотек (качал давно, уже не помню) перед работой скриптов надо было установить драйвер ODBC MySQL. »

это в UDF по ссылке:
Цитата:

MySQL UDFs 1
по ссылке
Цитата:

MySQL UDFs 2
работает без этого драйвера

morgan1991 12-06-2009 14:15 1141635

Урааа! Я приконнектился к бд через
Цитата:

Цитата proxy
MySQL UDFs 2 »

Вот кодик:
Код:

#include "array.au3"
#include "mysql.au3"
_MySQL_InitLibrary()
$MysqlConn = _MySQL_Init()
$connected = _MySQL_Real_Connect($MysqlConn, "127.0.0.1", "root","123", "main")
If $connected = 0 Then
    $errno = _MySQL_errno($MysqlConn)
    MsgBox(0,"Error:",$errno & @LF & _MySQL_error($MysqlConn))
    If $errno = $CR_UNKNOWN_HOST Then MsgBox(0,"Error:","$CR_UNKNOWN_HOST" & @LF & $CR_UNKNOWN_HOST)
Endif
$query = "SELECT * FROM test"
_MySQL_Real_Query($MysqlConn, $query)

$res = _MySQL_Store_Result($MysqlConn)
$gg = _MySQL_Fetch_Result_StringArray($res)
_ArrayDisplay($gg)

_MySQL_Free_Result($res)
_MySQL_Close($MysqlConn)
_MySQL_EndLibrary()

Но я так и не понял как добавлять новые данные в бд, как удалять и т.д. пробовал через _MySQL_Real_Query послать обычный запрос в бд, но ничего не вышло, помогите плиз, как это сделать?

Space-06 21-06-2009 09:36 1147986

Ребята - прошу вашего совета и просьбы в помощи...
Соглашусь с morgan1991, выполнить запросы любые запросы - кроме как "select * from ... " - не получается вообще ... ( вываливается autoit.exe с ошибкой) ...

Что можно подсмотреть и поправить,
пытаюсь выполнить запрос insert или select * from ... where ....
тоже самое ....

подскажите где и как и что копать ...

morgan1991 22-06-2009 19:29 1149197

Space-06,


вот у меня получилось:

Код:

#include "mysql.au3"
_MySQL_InitLibrary()
    $MysqlConn = _MySQL_Init()
    $connected = _MySQL_Real_Connect($MysqlConn,"домен","юзер","пароль", "бд")
    If $connected = 0 Then
        MsgBox(16, "Ошибка", "Нет соеденения с БД")
        Exit
    Else

    _MySQL_Real_Query($MysqlConn, "SELECT * FROM test")
    $res = _MySQL_Store_Result($MysqlConn)
_MySQL_Real_Query($MysqlConn, "DELETE FROM `test` WHERE (`name`='ххх') AND (`description`='ххх') LIMIT 1")



Время: 21:22.

Время: 21:22.
© OSzone.net 2001-