[Mysql]Probl insert mehrere Datensätze
-
Hallo
hier erstma mein Code:
SQLQuery1->Close(); SQLQuery1->SQL->Clear(); SQLQuery1->SQL->Add("SELECT * FROM XYZ ORDER BY num_id ASC LIMIT 1"); SQLQuery1->Open(); int i4 = SQLQuery1->Fields->Fields[0]->AsInteger; int i5 = SQLQuery1->Fields->Fields[2]->AsInteger; int i6 = SQLQuery1->Fields->Fields[3]->AsInteger; SQLQuery1->SQL->Add("INSERT INTO XYZ"); SQLQuery1->SQL->Add("(id,name,num_id,ad_id)"); SQLQuery1->SQL->Add("values(:id,:name,:num_id,:ad_id)"); SQLQuery1->ParamByName(":id")->Value =i4+1 ; SQLQuery1->ParamByName(":name")->Value=Form1->Edit->Text; SQLQuery1->ParamByName(":num_id")->Value =i5+1; SQLQuery1->ParamByName(":ad_id")->Value =i6+1;
also ich selectiere den Letzten Datensatz einer Tabelle(wo num_id am höchsten ist) und speichere 1 datensatz (id,name,num_id,ad_id) wie das im COde zu sehen ist.
nun zu meiner Frage,ich möchte 3 Datensätze und nicht nur einen Datensatz speichern.wobei: id=i4+1(incrementiert),name=bleibt gleich,num_id=bleibt gleich..ad_id: hat 3 verschiedene werte(i6+1,3,4).hab an eine forschleife gedacht,ich krieg s aber irgendwie nicht hin.
Danke
-
Zeig mal deine for-Schleife und sage uns, was genau nicht funktioniert.
-
Hallo Jansen
ich hab nur an eine for-schleife "gedacht" ,wie das zu realisieren ist ist das eigentliche Problem,wäre für jede Hilfe Dankbar.
-
Du wirst doch schon mal in einer for-Schleife einen Zähler inkrementiert haben!?
for (int x = 1; x <= irgendwas; x++) { ... SQLQuery1->ParamByName(":id")->Value = i4 + x; ... }
-
Hallo
die schleife ist dann falsch wenn man die letzte Zeile meines Codes berücksichtigt:
SQLQuery1->ParamByName(":ad_id")->Value =i6+1;
wenn man die in der for-schleife schreibt macht s keinen Sinn,da diese ad_id 3 Verschiedene werte hat.(i6+1,3,4).
Danke
-
Wenn es um genau diese Zahlen geht dann mach halt bei x==2 eine Ausnahme.
Falls nicht, und wenn es auch sonst keine im weitesten Sinn fortlaufenden Nummern sind dann pack sie vorab in ein int-Array und arbeite dann das Array in der Schleife ab.