[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.


Anmelden zum Antworten