Hello, I'm trying to write a small application to work with a Microsoft Access database. This application will have to insert and update records, and I'd like to use paramstyle='named'. With INSERT commands this seems to work, with UPDATE I get an exception I can't explain.
Example: The database table called tblHaupt contains the fields id (integer, primary key, autoincrement), item (varchar), ort (integer, foreign key into another table). There are more fields, but the UPDATE command I've been trying out only uses these three. Code to try it: ######################################################################## import adodbapi CONNFORM = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};" DBLOKAL = r"X:\Path\to\database\db.accdb" # or db.mdb UPCMD = "UPDATE tblHaupt SET item = :item, ort = :ort_id WHERE id = :h_id" updata = {"item": "Testkeks D", "ort_id": 12, "h_id": 745} connstr = CONNFORM.format(DBLOKAL) conn = adodbapi.connect(connstr, paramstyle='named') curs = conn.cursor() curs.execute(UPCMD, updata) Result: Traceback (most recent call last): Python Shell, prompt 62, line 1 # Used internally for debug sandbox under external interpreter File "C:\Program Files\Python37\Lib\site-packages\adodbapi\adodbapi.py", line 867, in execute operation = self._reformat_operation(operation, parameters) # if 'named' will set self._parameter_names File "C:\Program Files\Python37\Lib\site-packages\adodbapi\adodbapi.py", line 751, in _reformat_operation operation, self._parameter_names = api.changeNamedToQmark(operation) # convert :name to ? File "C:\Program Files\Python37\Lib\site-packages\adodbapi\apibase.py", line 598, in changeNamedToQmark c = chunk[i] builtins.IndexError: string index out of range ########################################################################## What's the matter here? INSERT into the same table works. The same UPDATE command using paramstyle 'pyformat' works. Why not UPDATE with 'named'? Is something wrong with my parameter dictionary and I don't see it? Python version is 3.7.2 (64bit), adodbapi.__version__ = 2.6.0.6, Windows 10 Home, Version 1809 (64bit). Thank you for explanations, Sibylle _______________________________________________ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32