L
trade schrieb:
ein sql statement für einen datensatz sieht so aus:
INSERT INTO test (source) VALUES (0007)INSERT INTO test (beam) VALUES (6)INSERT INTO test (alarm) VALUES (1)INSERT INTO test (alarm_no) VALUES (1103)INSERT INTO test (x) VALUES (0)INSERT INTO test VALUES (0)INSERT INTO test (w) VALUES (0)INSERT INTO test (h) VALUES (0)INSERT INTO test (value) VALUES (0)INSERT INTO test (classes) VALUES (D)
das wäre ein statement für einen einzigen datensatz, da die tabelle 10 spalten hat!
geht das überhaupt so?das für jede einzelnes feld im datensatz ein eigenes sql statement geschickt wird??
damit schreibst du nicht EINEN Datensatz sondern 10, da jeder Insert-Befehl einen Datensatz anlegt
also entweder machst du das Insert für alle Spalten auf einmal oder du mußt nach dem ersten Insert für alle weiteren Daten des Datensatzes Update verwenden
außerdem könnte helfen wenn du VOR dem Löschen des SQL-Statments des Query wieder schließen tust, z.B.
//Daten aus dem Array daten lesen und per ADOQuery2 in Datenbank schreiben:
for(int i = 0; i < ADOQuery1->Fields->Count; i++)
{
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("INSERT INTO test (" + mdbspalten[i] + ") VALUES (" + daten[i][j] + ")");
ADOQuery2->Open();
}
ADOQuery2->SQL->Text =
"INSERT INTO test (source,beam,alarm_id,alarm_nr,x,y,w,h,value,classes)
VALUES ('as','ds','as','ser','aina','wil','lu','tschen','min','penu')";
ADOQuery2->Open();
doch leider funktioniert nicht mal das?has auch mal noch probiert ohne die hochkommas (')!
sind deine Felder wirklich alle vom Typ String? oder verlangen z.B. x,y und h nicht vielleicht Zahlen?
Grüße
Linnea