ODBC-Fehler bei UPDATE-Funktion



  • hallo Kollegen,

    Entwicklungsumgebung: BCB6
    Datenbank: MS-Access 2002 - MDB

    ich habe in Access eine Abfrage erstellt. Diese läßt sich im Access ausführen und funktioniert dort auch wie gewünscht. Versuche ich jetzt diese Abfrage über den Borlandbuilder, programmiertechnich auszuführen, kommt eine Fehlermeldung, das der ODBC-Treiber die REPLACE Anweisung nicht kennt.

    Kann das der ODBC-Treiber wirklich nicht und gibt es da eine alternative?
    Ich muss in der Datenbank Teilstrings ersetzen, wenn der Teilstring in der Zelle auftaucht.

    mfg Stephan



  • hier mal zur Ergänzung noch die Fehlermeldung von BCB mit der Fehlermeldung vom Treiber:

    Im Projekt xxxxx.exe ist eine Exception der Klasse EOleException aufgetreten. Meldung: '[Microsoft][ODBC Microsoft Access Driver] Undefinierte Funktion 'REPLACE' im Ausdruck'. ...

    bitte helft mir 😕

    lg stephan



  • zeig mal code



  • Hier die SQL Syntax der Abfrage in ACCESS:

    PARAMETERS paraOldName Text ( 255 ), paraNewName Text ( 255 );
    UPDATE tabDateiliste SET tabDateiliste.Pfad = REPLACE(tabDateiliste.Pfad,[paraOldName],[paraNewName])
    WHERE ((tabDateiliste.Pfad) Like [paraOldName] & '*');
    

    aber ich denke, das Thema hat sich erledigt. Ich habe gestern noch viel gegoogelt und habe herausgefunden, das das der ODBC-Treiber nicht macht. Es ist auch nicht möglich, ein Workaround zu schreiben, in dem man eine eigene REPLACE-Funktion in Access programmiert (in ein Modul). Die selbstgeschriebene Funktion ist ODBC nicht bekannt. Das komische ist, in ACCESS geht alles. Programmtechnich im BCB über eine ADOStoredProc - Komponente nicht. Ich kann in der Komponente noch einen anderen Provider auswählen, vielleicht geht es mit einem anderen Treiber.

    lg Stephan


Anmelden zum Antworten