hiermit geht's am schnellsten (Attach -> 1 x Insert Into -> Detach):
Code: Alles auswählen
EnableExplicit
UseSQLiteDatabase()
Procedure CheckDatabaseUpdate(Database, Query$)
Protected Result
Result = DatabaseUpdate(Database, Query$)
If Result = 0
Debug DatabaseError()
EndIf
ProcedureReturn Result
EndProcedure
Define DatabaseFile_Source.s = GetTemporaryDirectory() + "test1.db"
Define DatabaseFile_Target.s = GetTemporaryDirectory() + "test2.db"
DeleteFile(DatabaseFile_Source)
DeleteFile(DatabaseFile_Target)
Define FF, DB_Source, DB_Target
; Create test-databases
If FileSize(DatabaseFile_Source) = -1
FF = CreateFile(#PB_Any, DatabaseFile_Source)
If FF
CloseFile(FF)
DB_Source = OpenDatabase(#PB_Any, DatabaseFile_Source, "", "")
If DB_Source
DatabaseUpdate(DB_Source, "CREATE TABLE food (name CHAR(50), weight INT)")
CheckDatabaseUpdate(DB_Source, "INSERT INTO food (name, weight) VALUES ('apple', '10')")
CheckDatabaseUpdate(DB_Source, "INSERT INTO food (name, weight) VALUES ('pear', '5')")
CheckDatabaseUpdate(DB_Source, "INSERT INTO food (name, weight) VALUES ('banana', '20')")
CloseDatabase(DB_Source)
EndIf
EndIf
EndIf
If FileSize(DatabaseFile_Target) = -1
FF = CreateFile(#PB_Any, DatabaseFile_Target)
If FF
CloseFile(FF)
DB_Target = OpenDatabase(#PB_Any, DatabaseFile_Target, "", "")
If DB_Target
DatabaseUpdate(DB_Target, "CREATE TABLE food (name CHAR(50), weight INT)")
CloseDatabase(DB_Target)
EndIf
EndIf
EndIf
; ---
DB_Source = OpenDatabase(#PB_Any, DatabaseFile_Source, "", "")
If DB_Source
DB_Target = OpenDatabase(#PB_Any, DatabaseFile_Target, "", "")
If DB_Target
DatabaseUpdate(DB_Source, "ATTACH DATABASE '" + DatabaseFile_Target + "' AS AttachedDatabase")
CheckDatabaseUpdate(DB_Source, "INSERT INTO AttachedDatabase.food SELECT * FROM food")
If DatabaseQuery(DB_Target, "SELECT * FROM food")
While NextDatabaseRow(DB_Target)
Debug GetDatabaseString(DB_Target, 0)
Wend
FinishDatabaseQuery(DB_Target)
EndIf
DatabaseUpdate(DB_Source, "DETACH DATABASE AttachedDatabase")
CloseDatabase(DB_Target)
Else
Debug "Can't open DatabaseFile_Target"
EndIf
CloseDatabase(DB_Source)
Else
Debug "Can't open DatabaseFile_Source"
EndIf
Grüße ... Peter