Problem ADO-Komponente und Update Befehl



  • Hallo zusammen,

    hab da ein Problem mit der ADO Komponente und krieg es nicht gelöst.

    Also ich baue mit Hilfe der ADO-Komponente (ADO-Connection) und dem Provider "Microsoft Jet 4.0 OLE DB Provider" eine direkte Verbindung zu einer Access DB auf. Das funktioniert auch ohne Probleme. Aber sobald ich aus dem Programm heraus auf Knopfdruck versuche einen Datensatz upzudaten läuft mir das ganze auf einen fehler.

    Beispiel für die Query:

    UPDATE umsatz SET kosten = '1234' WHERE id = 52
    

    Dann erhalte ich immer eine Exception. Die Fehlermeldung lautet immer:
    **
    Im Projekt xyz ist eine Exception der Klasse EConvertError aufgetreten. Meldung:"aj34ld"
    **

    Dann stehen hinter Meldung irgendwelche Zeichen, wo ich nicht weiß woher die kommen könnten. Als ich den Zugriff noch über den Umweg der ODBC Datenquelle realisiert habe, gab es überhaupt keine Schwierigkeiten.

    Hat jemand ne Ahnung woran das liegen könnte? Oder ist das jemandem bekannt?
    Kann die ADO-Komponente vielleicht mit dem UPDATE-Befehl nicht umgehen?

    Für ne Antwort wäre ich euch dankbar.

    MfG
    chloe



  • ich vermute mal das es sich bei deinem Wert um eine Zahl handelt. Ich bin mir nicht ganz sicher, aber Zahlen sollten nicht in Hochkommata gesetzt werden.
    Wenn man sich die Fehlermeldung mal genauer ansieht (...EConvertError...), handelt es sich doch um ein Konvertierungsfehler...



  • Hallo,

    hab da auch ein kleines Problem.
    Versuche ebenfalls mit dem Update Befehl einen Datensatz in der DB zu aktualisieren. Irgendetwas scheint jedoch mit der Syntax nicht in Ordnung zu sein.

    ...
    ADOQuery1->SQL->Add(" WHERE nr = :nr ");
    ADOQuery1->Parameters->ParamByName("nr")->Value = v_index; 
    ADOQuery1->ExecSQL();
    

    Wobei nr ein Autowert Datenfeld in der DB darstellt.

    Bei jedem Updateversuch läuft das ganze auf einen Fehler hinaus.

    Hat jemand vielleicht einen Rat?

    Vielen Dank!



  • Wie lautet die Fehlermeldung?



  • Du solltest evtl. ADOCommand verwenden, da ADOQuery versucht, eine Datenmenge
    zurückzugeben. Hatte das Problem auch.


Anmelden zum Antworten