Der Code funktioniert jetzt zwar aber lt. DatabaseUpdate() ist irgendwas falsch!?
Ich vermute es liegt an der Formatierung der Anfrage.
Ignoriert bitte den ersten Teil des Codes werde in später ändern.
Vorher will ich das Ganze erst einmal korrekt zum laufen bekommen.
Code: Alles auswählen
Procedure.i TableRemove(*Database,Table.s,Key.s)
Protected request.s
Protected column_count.i
Protected column_name.s
Protected column_type.s
Protected column_index.i
Protected column_test.i
Protected keys.s
Protected backup.s
Protected query.i
If Table And Key
request = "SELECT * FROM " + Table
If DatabaseQuery(*Database,request)
column_count = DatabaseColumns(*Database)
column_count - 1
For column_index = 0 To column_count
column_name = DatabaseColumnName(*Database,column_index)
Select DatabaseColumnType(*Database,column_index)
Case #PB_Database_Long, #PB_Database_Quad
column_type = " INTEGER"
Case #PB_Database_Float, #PB_Database_Double
column_type = " REAL"
Case #PB_Database_String
column_type = " TEXT"
Case #PB_Database_Blob
column_type = " BLOB"
EndSelect
If column_name = Key
column_test = #True
Else
If column_index = column_count
keys + column_name + column_type
Else
keys + column_name + column_type + ", "
EndIf
EndIf
Next
FinishDatabaseQuery(*Database)
If column_test
backup = Table + "_backup"
request = "CREATE TEMPORARY TABLE " + backup + " (" + keys + ");"
request + "INSERT INTO " + backup + " SELECT " + keys + " FROM " + Table + ";"
request + "DROP TABLE " + Table+ ";"
request + "CREATE TABLE " + Table + " (" + keys + ");"
request + "INSERT INTO " + Table + " SELECT " + keys + " FROM " + backup+ ";"
request + "DROP TABLE " + backup+ ";"
request + "COMMIT;"
Debug "->"
Debug DatabaseUpdate(*Database,request)
ProcedureReturn #True
EndIf
EndIf
EndIf
ProcedureReturn #False
EndProcedure