Версия AutoIt: 3.
Описание:
программа сохраняет в и выгружает файл из MYSQL в таблицу с полем BLOB / MEDIUMBLOB.
текстовые файлы обрабатываются нормально.
*.EXE и *.DOC - выгружаются неправильно (меняется их размер)
Примечания:
Описание:
программа сохраняет в и выгружает файл из MYSQL в таблицу с полем BLOB / MEDIUMBLOB.
текстовые файлы обрабатываются нормально.
*.EXE и *.DOC - выгружаются неправильно (меняется их размер)
Примечания:
Код:
;определение архитектуры для поиска в реестре драйвера
if @OSArch = 'X64' Then Local Const $reg_drv_path = 'HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers'
if @OSArch = 'X86' Then Local Const $reg_drv_path = 'HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers'
Local $sSubKey, $i=0, $sDriver
While @error = 0
$i+=1
$sSubKey = RegEnumval($reg_drv_path, $i)
if StringInStr($sSubKey,'MySQL ODBC') And StringInStr($sSubKey,'Unicode Driver') Then $sDriver = $sSubKey
if Stringlen($sSubKey)=0 Then ExitLoop
WEnd
;~ $sDriver='MySQL ODBC 5.3 Unicode Driver';если все хорошо то должно быть так
if Stringlen($sDriver)=0 Then
MsgBox(16,"Ошибка!","не установлен коннектор к MySQL !")
_Exit()
EndIf
Local $sDBServerIP = "127.0.0.1" ; IP адресс севера с MySQL
Local $sDBUsername = "test" ; Имя пользователя для подключения к базе данных
Local $sDBPassword = "test" ; Пароль
Local $sDatabase = "logistic" ; База Данных к которой будем подключаемся
; Подключаемся к Серверу
Global $MySQLConn = ObjCreate("ADODB.Connection")
$MySQLConn.Open("DRIVER="&$sDriver&";SERVER=" & $sDBServerIP & ";UID=" & $sDBUsername & ";PWD=" & $sDBPassword & ";PORT=3306"); Подключаемся к базе
$MySQLConn.Execute("CREATE DATABASE if not EXISTS logistic CHARACTER SET utf8 COLLATE utf8_general_ci ;")
$MySQLConn.Execute("USE "&$sDatabase&";");выбор базы
;~ делаем стартовые таблицы
$MySQLConn.Execute("CREATE TABLE IF NOT EXISTS logistic.documents (id int NOT NULL PRIMARY KEY auto_increment,name varchar(250),data BLOB) COLLATE='utf8_general_ci' ENGINE=InnoDB;")
;~ записываем файл в таблицу
Local $sFilePath = FileOpenDialog('выберите файл','','')
Local $hFileOpen = FileOpen($sFilePath, 0)
local $sFileRead = FileRead($hFileOpen)
FileClose($hFileOpen)
local $temp = "INSERT INTO logistic.documents (name, data ) VALUES ('"& $sFilePath & "','" & StringToBinary($sFileRead) &"');"
$MySQLConn.Execute($temp);запрос с записью файла
$temp = "select * from logistic.documents ORDER BY id DESC LIMIT 1;";выбор последней записи
$temp = $MySQLConn.Execute($temp)
$temp = $temp.Fields(2).Value;содежимое ячейки (файла)
$temp=BinaryToString($temp);бинарные данные записанные
$temp=BinaryToString($temp);содержимое файла
;~ сохраняем файл из базы
Local $sFilePath = FileSaveDialog('','','')
Local $hFileOpen = FileOpen($sFilePath, 2)
local $sFileRead = FileWrite($hFileOpen,$temp)
FileClose($hFileOpen)