Всем привет
1. Создал БД SQlite
2. Добавил рисунок в БД
3. Считал рисунок из БД
4. Можно-ли отобразить рисунок сразу в GUI, без промежуточного его сохранения в файл?
1. Создал БД SQlite
2. Добавил рисунок в БД
3. Считал рисунок из БД
4. Можно-ли отобразить рисунок сразу в GUI, без промежуточного его сохранения в файл?
Код:
#include <SQLite.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
_SQLite_Startup()
$sFileDB = @ScriptDir & '\Data.db' ; Путь к БД
$TableName='table1' ; Название таблицы
Local $hQuery,$hRow
$sPathFile = @ScriptDir & '\01.jpg' ; Путь, где лежит рисунок
; Считать бинарные данные
$hFile = FileOpen($sPathFile, 16)
$sFile = FileRead($hFile)
$sFile =_SQLite_FastEncode($sFile)
FileClose($hFile)
; Создать строку запроса
$sExec = 'BEGIN; CREATE TABLE IF NOT EXISTS '&$TableName&' ([ID] INTEGER PRIMARY KEY AUTOINCREMENT, [f_1] BLOB );'
$sExec &= 'INSERT INTO '&$TableName&' (f_1) VALUES ('&$sFile&');'
$sExec &= 'COMMIT;'
; Выполнить запрос
$hDB = _SQLite_Open($sFileDB)
_SQLite_Exec($hDB, $sExec)
; Считать бинарные данные из БД
_SQLite_Query($hDB, 'SELECT f_1 FROM '&$TableName&';',$hQuery)
_SQLite_FetchData($hQuery, $hRow, 1)
$Picture=BinaryToString ($hRow[0])
; GUI
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 409, 298, 335, 225)
$Pic1 = GUICtrlCreatePic("", 16, 16, 236, 196)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd