Пытаюсь сделать общий доступ для нескольких программ к базе данных SQLite в виртуальной памяти.
Для этого создаю базу в одной программе, а хенл базы передаю другой программе в качестве аргумента.
Но вторая программа не может работать с хендлом как со строкой, а при переводе из строки в хендл, весь хендл забивается нулями.
Как можно передать хендл базы данных другой программе?
программа 1
программа 2
Для этого создаю базу в одной программе, а хенл базы передаю другой программе в качестве аргумента.
Но вторая программа не может работать с хендлом как со строкой, а при переводе из строки в хендл, весь хендл забивается нулями.
Как можно передать хендл базы данных другой программе?
программа 1
Код:
#include <SQLite.au3>
#include <SQLite.dll.au3>
_SQLite_Startup()
$DBHandle = _SQLite_Open()
_SQLite_Exec($DBHandle, "CREATE TABLE IF NOT EXISTS TestTable (TestCol VARCHAR);")
_SQLite_Exec($DBHandle, "INSERT INTO TestTable VALUES ('TestVal1');")
Dim $Result, $Rows, $Columns
_SQLite_GetTable2d($DBHandle, "SELECT * FROM TestTable ;", $Result, $Rows, $Columns)
_ArrayDisplay($Result)
MsgBox(0,'HDB', $DBHandle)
MsgBox(0,'HDBs', String($DBHandle))
Run('1HWND2.exe '&$DBHandle)
;~ _ArrayDisplay($Result)
_SQLite_Close($DBHandle)
_SQLite_Shutdown()
программа 2
Код:
#include <SQLite.au3>
#include <SQLite.dll.au3>
MsgBox(0,'str', $CMDLine[1])
$HDB = HWnd($CMDLine[1])
MsgBox(0,'hd', $HDB)
_SQLite_Startup()
;~ $DBHandle = _SQLite_Open()
;~ _SQLite_Exec($DBHandle, "CREATE TABLE IF NOT EXISTS TestTable (TestCol VARCHAR);")
;~ _SQLite_Exec($CMDLine[1], "INSERT INTO TestTable VALUES ('TestVal1');")
Dim $Result, $Rows, $Columns
_SQLite_GetTable2d($CMDLine[1], "SELECT * FROM TestTable ;", $Result, $Rows, $Columns)
_ArrayDisplay($Result, '2')
;~ _SQLite_Close($DBHandle)
_SQLite_Shutdown()