Daten in eine MySQl Datenbank einfügen



  • Hallo zusammen,

    ich möchte gerne Daten aus einen DBGrid Feld in meine MySQL Datenbank einfügen.
    Hat jemand eine Ahnung wie das geht ?

    Danke schonmal



  • Hallo

    wenn du die Controls richtig verlinkt hast, sollte es eigentlich automatisch gehen.
    Ansonsten kannst du die Table (bei Query gehts nicht) per

    TTable->Edit();
    TTable->FieldByName("Name")->Value = "Karl";
    TTable->Post();
    

    das Feld 'Name' im aktuellen Datensatz auf den Wert 'Karl' setzen.

    bis bald
    akari


  • Mod

    Hallo

    besser waere die Verwendung von SQL
    (UPDATE ......

    Dazu muesste man aber wissen wie du auf mySQL zugreifst

    MfG
    Klaus



  • Hallo KlausB,

    ich brauche nur ein kleines Programm das Daten aus einem DBGrid Feld in meine bereits vorhandene Datenbank einfügt. Ich wollte das eigentlich über eine Query oder Table Komponente erledigen.
    Leider weiß ich nur nicht wie ich die Daten aus dem GridFeld auslesen und dann in meine Datenbanktabelle einfügen kann. Die Spaltennamen aus dem GridFeld sind dieselben wie die in meiner Datenbank. Vielleicht gibt es ja auch eine bessere Möglichkeit.

    Mein eigentliches Problem ist ja nur, Daten aus einer Datenbank ( z.B. DBase ) in eine MySQL Datenbank zu importieren.

    Gruß
    runner963



  • alles was du im DBGrid einträgst ist quasi schon in deiner Datenbank, du mußt es nur noch bestätigen, also "fest" eintragen

    das geht entweder indem du den DBNavigator nutzt, oder mit Hilfe eines Button die Änderungen über Table->Post() (wie akari ja schon schrieb) in die Datenbank schreibst

    ausserdem gibt ein Datenbanktutorial in der FAQ http://www.c-plusplus.net/forum/viewtopic.php?t=39274 und Beispiele beim BCB


  • Mod

    Hallo

    dh. du hast eine zB DBase-Datenbank (Daten im Grid) und moechtest diese Daten
    in eine mySQL-Tabelle einfuegen.

    Am besten ueber TQuery (oder eben irgenein Query - je nachdem welche Verbindung du
    verwendest)

    der SQL-String =
    aSQL = "INSERT INTO XXXXXX VALUES ('"
    aSQL = aSQL + DBGrid->DataSource->DataSet->FieldByName("YYYY")->AsString;
    ....
    ....

    alle Felder verwenden !
    Am besten noch zusaetzlich ein "id"-Feld (autoincrement) als Primaerschluessel
    (muss nicht ist aber besser)

    MfG
    Klaus


Anmelden zum Antworten