INSERT in MySQL gibt "Typangabe ist ungültig" zurück



  • Hallo zusammen,

    ich komme einfach nicht weiter. Datenbank MySQL 5, ODBCConnector 5.0
    Tabelle:
    id | integer | primär
    edate | date
    etime | time
    bahn | char

    wenn ich nun mit folgendem code einen Insert ausführen möchte bekomme ich eine Exception "...EOleExeption ... Die Typangabe ist ungültig" zurück.

    [cpp]try
    			{
    				bahn = (String)ValueNode->ChildNodes->FindNode(n)->NodeValue;
    				//temperatur = (String)ValueNode->ChildNodes->FindNode(t)->NodeValue;
    				//druck = (String)ValueNode->ChildNodes->FindNode(h)->NodeValue;
    				//temperatur = StringReplace(temperatur,".",",",TReplaceFlags() << rfReplaceAll);
    				TDateTime dt = Now();	// aktuelle Zeit holen
    				// Werte in die Datenbak wegschreiben
    				query_environment->Close();
    				query_environment->SQL->Clear();
    				query_environment->SQL->Add("Insert into tbl_environment(edate, etime, bahn)");
    				query_environment->SQL->Add("VALUES (:edate, :etime,:bahn)");
    				query_environment->Parameters->ParamByName("edate")->Value = dt.FormatString("yyyy.mm.dd");
    				query_environment->Parameters->ParamByName("etime")->Value = dt.FormatString("hh:nn:ss");
    				query_environment->Parameters->ParamByName("bahn")->Value = bahn;
    				query_environment->ExecSQL();
    			} catch (...) {
    			}[/cpp]
    

    gebe ich die values manuell ein :

    query_environment->SQL->Add("VALUES ('2007.12.12', '12:00','bahn1')");
    

    dann trägt er die Werte ein 🙄

    Ich finde den Fehler einfach nicht. Ich hoffe ihr habt eine Idee wieso das nicht laufen will.



  • Hallo

    Überlas doch der Datenbank das richtige Format

    query_environment->Parameters->ParamByName("edate")->AsDateTime = dt;
    

    Ansonsten sehe ich kein Problem.

    bis bald
    akari



  • hi akari,

    edate und etime hab ich auch mal weg gelassen. sollte also nur bahn eintragen. bekomme aber die selbe fehlermeldung.



  • hi zusammen,

    hab das ganze mal mit einer MSSQL datenbank gemacht. dort funzt es einwandfrei (würd mich auch wundern wenn nicht, weil der code ok ist).
    WARUM funzt der code nicht bei MySQL ?????



  • Hallo,

    ich vermute du hast dir die Antwort schon selbst gegeben...

    VALUES (2007.12.12, 12:00, bahn1)
    oder:
    VALUES ('2007.12.12', '12:00','bahn1')

    dir fehlen die einfachen Anführungsstriche.

    mfg, Micha!



  • RandomAccess85 schrieb:

    Hallo,

    ich vermute du hast dir die Antwort schon selbst gegeben...

    VALUES (2007.12.12, 12:00, bahn1)
    oder:
    VALUES ('2007.12.12', '12:00','bahn1')

    dir fehlen die einfachen Anführungsstriche.

    mfg, Micha!

    das hatte ich auch getestet. hatte den string mit den '' ausgegeben. keine chance. 😞
    manuell ja, variable nein, variable incl den '' auch nein



  • schau mal hier


Anmelden zum Antworten