Code: Alles auswählen
EnableExplicit
UseSQLiteDatabase()
DataSection
db_start:
IncludeBinary "test.sqlite"
db_end:
EndDataSection
Procedure CatchSQLiteFromMemory(*mem, size)
Protected PName.s = "\\.\pipe\SQLiteMemData"
Protected hPipe, hFile, pBytes
hPipe = CreateNamedPipe_(PName, #PIPE_ACCESS_DUPLEX, #PIPE_TYPE_BYTE, 1, size,size, #NMPWAIT_USE_DEFAULT_WAIT, #Null)
If hPipe = #INVALID_HANDLE_VALUE : ProcedureReturn #False : EndIf
hFile = CreateFile_(PName, #GENERIC_READ |#GENERIC_WRITE, 0, #Null, #OPEN_EXISTING, 0, #Null)
If Not hFile : CloseHandle_(hPipe) : ProcedureReturn #False : EndIf
WriteFile_(hFile, *mem, size, @pBytes, 0)
Debug pBytes
CloseHandle_(hFile)
Debug OpenDatabase(0, PName, "", "")
CloseHandle_(hPipe)
EndProcedure
CatchSQLiteFromMemory(?db_start, ?db_end - ?db_start)Frage 1: Kann das öffnen einer Datenbank (zum lesen würde reichen) per NamedPipe funktionieren?
Frage 2: Oder nutze ich falsche Parameter, bzw. fehlt in meinem Code noch etwas?
Zum testen einfach irgendeine SQLite-Datenbank includieren.
Gruß
Thomas
