Was hab ich da noch falsch? In Datenbank schreiben



  • Hallo,

    wenn du die Verbindung zur Datenbank über die Database1-Komponente herstellen konntest (hab ich bei meinen Versuchen leider nicht hingekriegt), so kann das nur noch an der SQL Anweisung liegen. In dieser gibst Du nämlich nicht an, in welcher Tabelle die Insert-Anweisung ausgeführt werden soll.
    Wenn deine Tabelle also "Tabelle1" heisst, so mußt du folgende Anweisung schreiben:

    AnsiString SQLstmt = "INSERT INTO Tabelle1 " + //statt test.mdb
                       AnsiString("(Dekor, Kunde, Ort, Auftragsnummer)") +
                       AnsiString("VALUES ('Test', 'Müller','Max', '12345')");
    

    Hoffe, ich konnt Dir weiterhelfen.



  • btw ist es praktischer std::string zu benutzen ( wenn deine c++ kenntnisse so gut sind wie du auf der hp anpreist )



  • @ 1ntrud0r

    1ntrud0r schrieb:

    btw ist es praktischer std::string zu benutzen ( wenn deine c++ kenntnisse so gut sind wie du auf der hp anpreist )

    was meinst Du damit?

    @all
    Ich hab die Verbindung zur Datenbank und das Eintragen klappt auch, keine Fehlermeldungen mehr. 👍

    Eine Sache würde mich jetzt noch Interessieren: Im VC++
    kann man folgenden Ausdruck:

    Test.Format("VALUES ('%s', '%s','%s', '%s]')", Teil[0],Teil[1],Teil[2],Teil[3]);
    

    schreiben und das haut auch hin.
    Geht das auch im Borland irgendiwe. Ich glaub ich hab nen Brett vorm Kopf 😕

    Danke



  • Hallo,

    Test.Format("VALUES ('%s', '%s','%s', '%s]')", Teil[0],Teil[1],Teil[2],Teil[3]);
    

    Das kannst du in Borland so schreiben :

    String Test; //entspricht AnsiString
    Test.Printf("VALUES ('%s', '%s','%s', '%s]')", Teil[0],Teil[1],Teil[2],Teil[3]);
    

    Die Beschreibung der Printf-Methode findest du in der Hilfe unter "AnsiString-Methoden".

    Würde ich aber so nicht empfehlen, besser wäre:

    String Test; //entspricht AnsiString
    Test = "VALUES (";
    Test+= "'"+String(Teil[0])+"',"+
           "'"+String(Teil[1])+"',"+
           "'"+String(Teil[2])+"',"+
           "'"+String(Teil[3])+"')";
    

    Natürlich läßt sich das auch mit einer for-Schleife elegant erledigen.

    Gruß Burkhard



  • @ Burkhard

    Okay, das hab ich verstanden. Funktioniert das auch mit nem AnsiString so, weil das Statement doch eigentlich hierzu:

    AnsiString SQLstmt = "INSERT INTO Eingelesene" + 
    AnsiString("(Dekor, Kunde, Ort, Auftragsnummer)") + 
    AnsiString("VALUES ('Test', 'Müller','Max', '12345')");
    

    gehört



  • man kann für formate auch einfach bei sprintf bleiben und den standard wahren .. aber ich denke das wisst ihr schon alles 🙄



  • Danke es funzt.



  • Ja, das geht auch, weil String ja AnsiString entspricht, es ist nur eine Typedefinition:

    typedef AnsiString String;
    

    Weiß allerdings nicht, wo in der VCL das definiert ist.

    Gruß Burkhard



  • Ja, das geht auch, weil String ja AnsiString entspricht, es ist nur eine Typedefinition:

    typedef AnsiString String;
    

    Weiß allerdings nicht, wo in der VCL das definiert ist.

    Gruß Burkhard



  • ela schrieb:

    Noch eine andere Frage: Gibt es im Borland Builder 5.0 C++ eine ähnliche Debug-Funktion wie im VC++, also Hlatpunkt setzen und dann Step by Step weitergehen und sehen was in den einzelnen Variablen drin steht?

    Btw: Vielleicht hilft das hier noch etwas weiter:
    http://www.junix.ch/bcb/help
    Da hats nen Artikel, übers Debuggen mit dem BCB...

    Und für die Zukunft bitte: Für verschiedene Themen auch verschiedene Threads verwenden. Danke.

    -junix


Anmelden zum Antworten