Что нового

Как отобразить рисунок в GUI, считанный из БД SQLite

pvnn

Осваивающий
Сообщения
305
Репутация
32
Всем привет
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
 
Верх