Что нового

Как правильно получить данные с MySql?

La2Angel

Новичок
Сообщения
156
Репутация
1
Есть база данных, есть библиотека libmysql.dll, только так и не разобрался, как получить данные из таблицы или столбца, для примера, программа читает файл пример test.txt там прочитала 1 строку, сделала запрос в базу и сравнила значения.

Сама библиотека - http://ifolder.ru/27022670
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: Помогите с MySql

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Помогите с MySql" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Модератор форума.
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Для работы с MySQL а автоите есть обект
Код:
ObjCreate("ADODB.Connection")

Работать через него гараздо проще. :IL_AutoIt_1:

А в этих функциях... я в общем не разобрался... да особо и не пытался.
 
Автор
L

La2Angel

Новичок
Сообщения
156
Репутация
1
Как то этот драйвер прописывать в реестр везде не очень хочется, а вот с библиотекой проще, но как получить данные не понятно :smile:
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Выложи тогда скрипт в котором используется данная библиотека с этими функциями, попробую понять.
 
Автор
L

La2Angel

Новичок
Сообщения
156
Репутация
1
Код:
#include<mysql.au3>
_MySQL_InitLibrary()
If @error Then Exit MsgBox(0, '', "")
$MysqlConn = _MySQL_Init()

$connected = _MySQL_Real_Connect($MysqlConn, "localhost","root","root","test")
If $connected = 0 Then Exit MsgBox(16, 'Ошибка подключения', _MySQL_Error($MysqlConn))

$query="INSERT INTO `accounts` (`login`,`password`,`email`) VALUES ('login','Password','Mail')"
$zapros=_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()


Вот простой пример, данный запрос может как добавить, удалить, заменить, но вот как получить, он не получает. Возврат от функции 0 = выполнил или 1 = ошибка.
В данный момент там пример как записать данные в базу.
Все необходимео в двух архивах, один прикрепил, другой на ифолдере, там библиотека.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
La2Angel
Код:
#include <Array.au3>
#include <MySQL.au3>

Dim $sDBName = "test"
Dim $sHost = "localhost"
Dim $sLogin = "root"
Dim $sPassw = "root"
Dim $sQuery = 'INSERT INTO `accounts` (`login`, `password`, `email`) VALUES ("login", "Password", "Mail")'

_MySQL_InitLibrary()
If @error Then
	MsgBox(16, @ScriptName, "Error open library!")
	Exit
EndIf

$hMySQL = _MySQL_Init()
If @error Then
	MsgBox(16, @ScriptName, _MySQL_Error($hMySQL) & " (" &  _MySQL_Errno($hMySQL) & ")")
	Exit
EndIf

$hConnect = _MySQL_Real_Connect($hMySQL, $sHost, $sLogin, $sPassw, $sDBName)
If @error Then
	MsgBox(16, @ScriptName, _MySQL_Error($hMySQL) & " (" &  _MySQL_Errno($hMySQL) & ")")
	Exit
EndIf

ConsoleWrite(">> Successful connection..." & @CRLF)

If _MySQL_Real_Query($hConnect, $sQuery) Then
	MsgBox(16, @ScriptName, _MySQL_Error($hMySQL) & " (" &  _MySQL_Errno($hMySQL) & ")")
	Exit
Else
	ConsoleWrite(">> Successful query..." & @CRLF)
	$hResult = _MySQL_Store_Result($hConnect)
	If $hResult Then
		$aResult = _MySQL_Fetch_Result_StringArray($hResult)
		_ArrayDisplay($aResult)
	EndIf
EndIf

_MySQL_Free_Result($hResult)

_MySQL_Close($hMySQL)
_MySQL_EndLibrary()
 
Автор
L

La2Angel

Новичок
Сообщения
156
Репутация
1
А ещё не полностью решилась проблема, а как его вывести в GuiCtrlCreateEdit вывести например ?
 
Автор
L

La2Angel

Новичок
Сообщения
156
Репутация
1
Либо я торможу, либо что, но при написании GUICtrlSetData($edit,$aResult) он ничего не вносит в едит, а если сделать так GUICtrlSetData($edit,GuiCtrlread($aResult)) то пишет просто 0
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
La2Angel вам вот эта строка
Код:
_ArrayDisplay($aResult)

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

Код:
;...
If _MySQL_Real_Query($hConnect, $sQuery) Then
	MsgBox(16, @ScriptName, _MySQL_Error($hMySQL) & " (" &  _MySQL_Errno($hMySQL) & ")")
	Exit
Else
	ConsoleWrite(">> Successful query..." & @CRLF)
	$hResult = _MySQL_Store_Result($hConnect)
	If $hResult Then
		$aResult = _MySQL_Fetch_Result_StringArray($hResult)
;~ 		_ArrayDisplay($aResult)
	EndIf
EndIf


For $i = 1 To UBound($aResult, 1)-1
	For $j = 0 To UBound($aResult, 2)-1
		$sData &= $aResult[$i][$j] & @CRLF
	Next
	$sData &= @CRLF
Next
;...
GUICtrlSetData($hEdit, $sData)
;...

Вы когда подставите этот код в свой, не забудьте объявить переменную $sData, а то у вас опять появится вопрос ;)

P.S. Вы вроде сказали что проблема решена!?
 
Автор
L

La2Angel

Новичок
Сообщения
156
Репутация
1
Большое спасибо, тема решена :smile: Сорри за тупость, просто уже не вьезжаю, день тяжелый был :(
 
Верх