MySQL Datenbank mit borland nutzen



  • hmmm habs zum laufen bekommen. Er sagte mir "clear ist keine Element von TString"

    hab Clear mal auskommentiert.

    naja beim klick auf den butten bricht er wegen

    Im Projekt xxxx ist eine Exception der Klasse yyyyy aufgetreten. Meldung:
    'zzzzzz'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start

    ab (so stehts in der hilfe)

    nun ja, kann mir einer sagen wie mien befehl aussehen muss? vielleicht ist der ja nicht richtig.

    insertit = "INSERT into register (name,vorname) VALUES ('lbledName','lbledVorname')";
    


  • die Platzhalter wären die interessanten Infos gewesen...

    void __fastcall TfrmRegistrieren::btnRegistrierenClick(TObject *Sender)
    {
        AnsiString insertit;
        insertit = "INSERT into register (name) VALUES (" + QuotedStr(lbledName) + ")";
        ADOQuery_reg->Close();
        AODQuery_reg->SQL->Clear();
        ADOQuery_reg->SQL->Add(insertit);
        ADOQuery_reg->ExecSQL();
    }
    


  • Hallo,

    sry das ich mich erst wieder melde, aber ich war im kurzurlaub.

    Also leider schaffe ich es immer noch nicht irgendwas in meine SQL DB zu schreiben.

    derzeitig habe ich folgenden Code:

    void __fastcall TfrmRegistrieren::btnRegistrierenClick(TObject *Sender)
    {
    	AnsiString insertit;
        insertit = "INSERT into register (name) VALUES (" + QuotedStr (lbledName) + ")";
        ADOQuery_reg->Close();
        //ADOQuery_reg->Clear();
        ADOQuery_reg->SQL->Add(insertit);
        ADOQuery_reg->ExecSQL();
        }
    

    Dazu kommen dann folgende Fehlermeldungen:

    [C++ Fehler] fromRegistrieren.cpp(76): E2034 Konvertierung von 'TLabeledEdit *' nach 'AnsiString' nicht möglich

    [C++ Fehler] fromRegistrieren.cpp(76): E2342 Keine Übereinstimmung des Typs beim Parameter 'S' ('const AnsiString' erwartet, 'TLabeledEdit *' erhalten)

    naja ich bin halt am rumprobieren und versuche mit der hilfe klar zukommen, aber ich finde nicht die korrekte sysntax um einfach mal etwas in meineDB einzutragen.

    Danke an die helfer



  • [cpp]insertit = "INSERT into register (name) VALUES (" + QuotedStr (lbledName->Text) + ")";[/cpp]



  • liess in der hilfe mal nach was

    QuotedStr()
    

    für parameter braucht



  • erst mal danke, soweit funtzt es nun. Jedoch habe ich noch ein letztes Problem und dann seit ihr mich los 😉

    Ich bekomme beim Klick auf den "registrieren" button (damit er den insert ausführt) folgende Meldung

    Im Projekt meinProgramm.exe ist eine Exception der Klasse EOleExeption aufgetreten. Meldung:
    'Schwerwiegender Fehler'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start
    fortsetzen



  • In welcher Codezeile? Das Clear() hast Du hoffentlich wieder hereingenommen, das ist unerläßlich.

    Pierre|rlp schrieb:

    Jedoch habe ich noch ein letztes Problem und dann seit ihr mich los 😉

    Das glaube ich nicht so ganz...



  • ich bekomme die fehlermeldung bei

    insertit = "INSERT into register (name) VALUES (" + QuotedStr (lbledName->Text) + ")";
    

    und ja Clear ist wieder drin 😃



  • Ich kann das Problem nicht reproduzieren?!?
    Wie lautet die Codezeile davor?



  • hier ist nochmal mein Programm code der auf dem Button "registrieren" liegt

    void __fastcall TfrmRegistrieren::btnRegistrierenClick(TObject *Sender)
    {
    	AnsiString insertit;
        insertit = "INSERT into register (name) VALUES (" + QuotedStr (lbledName->Text) + ")";
        ADOQuery_reg->Close();
        ADOQuery_reg->SQL->Clear();
        ADOQuery_reg->SQL->Add(insertit);
        ADOQuery_reg->ExecSQL();
    }
    

    In der Zeile

    insertit = "INSERT into register (name) VALUES (" + QuotedStr (lbledName->Text) + ")";
    

    werden mir die oben genannten fehler angezeigt. Kann ich irgendwie testen ob ich wirklich mit meiner SQl verbunden bin? also auf localhost?



  • Was ist lbledName für ein Objekt?



  • das ist ein labeledEdit feld. dort soll der Name des User eingegeben werden. dieser Name soll dann auf knopfdruck in die DB geschrieben werden

    wenn du mir deine Email schicken willst kann ich dir auch gern mein Projekt schicken



  • Hm, das muß funktionieren... Kann keinen Fehler entdecken.

    Dein Projekt nützt mir nichts, da ich auf gar keinen Fall MySQL installieren werde...



  • ich glaub ich hab hier was gefunden. mein ADO verbindet nicht mehr zu server. ich werds einfach nochmal versuchen. muss erst mal wieder die dumme verbindung zum laufen bekommen



  • Kommt der Fehler auch, wenn Du alled Queryzugriffe auskommentierst?

    void __fastcall TfrmRegistrieren::btnRegistrierenClick(TObject *Sender)
    {
    	AnsiString insertit;
        insertit = "INSERT into register (name) VALUES (" + QuotedStr (lbledName->Text) + ")";
    //    ADOQuery_reg->Close();
    //    ADOQuery_reg->SQL->Clear();
    //    ADOQuery_reg->SQL->Add(insertit);
    //    ADOQuery_reg->ExecSQL();
    }
    


  • Nein, dann läuft das Programm ohne Probleme. es liegt sicher daran das ich bei diesem verbindungstest keine verbindung mehr bekomme (warum auch immer)



  • ist ganz einfach das problem hatte ich auch letztens:

    das Clear() ist nicht unerlässlich, da er es ins SQL feuert. bevor jetzt die datenmege betrachtet werden kann, muss er den SQL löschen, und wieder ein select bilden oder nur ein Clear() und dann einen table anzeigen lassen. ansonsten versucht er eine ABFRAGE mit dem INSERT-Befehl zu bilden, welches zwangsläufig schief geht.

    bei mir hatte das wunderbar geklappt, versuch es mal.

    ps: und wer behauptet, dass insert keinen rückgabewert hätte? er muss einen haben, weil sonst wären transaktionen niemals möglich.

    am besten sicherst du den aktuellen SQL befehl vorher:

    AnsiString a = ADOQuery_reg->SQL->Text;
    
    // und hinteher, nach dem insert dann wieder:
    
    ADOQuery_reg->SQL->Clear();
    ADOQuery_reg->SQL->Add(a);
    ADOQuery_reg->Open();
    

    gruß gerd



  • Hi, und wie bist du zur verbindung mit deiner datenbank gekommen mein server ist jetzt zum Beispiel mustermann.mu.funpic.de wie kann ich zu folgendem server connecten ??



  • Mal ne Frage:
    Woher bekomme ich die ADO Komponenten, ich habe den C++Builder 5 und bei mir gibt es keine Komponenten der Registerkarte ADO.

    gruß



  • Weiss zwar nicht, was diese Frage mit der Überschrift zu tun hat, aber die Komponenten sind ab der Prof. Version dabei. Ggf. nochmal installieren


Anmelden zum Antworten