On Fri, Sep 3, 2021 at 11:37 PM DFS <nos...@dfs.com> wrote: > > On 9/3/2021 1:47 AM, Chris Angelico wrote: > > On Fri, Sep 3, 2021 at 3:42 PM DFS <nos...@dfs.com> wrote: > >> > >> Having a problem with the DB2 connector > >> > >> test.py > >> ---------------------------------------------------------------- > >> import ibm_db_dbi > >> connectstring = > >> 'DATABASE=xxx;HOSTNAME=localhost;PORT=50000;PROTOCOL=TCPIP;UID=xxx;PWD=xxx;' > >> conn = ibm_db_dbi.connect(connectstring,'','') > >> > >> curr = conn.cursor > >> print(curr) > > > > According to PEP 249, what you want is conn.cursor() not conn.cursor. > > > > I'm a bit surprised as to the repr of that function though, which > > seems to be this line from your output: > > > > <ibm_db_dbi.Connection object at 0x000002154D2FED30> > > > > I'd have expected it to say something like "method cursor of > > Connection object", which would have been an immediate clue as to what > > needs to be done. Not sure why the repr is so confusing, and that > > might be something to report upstream. > > > > ChrisA > > > Thanks. I must've done it right, using conn.cursor(), 500x. > Bleary-eyed from staring at code too long I guess.
Cool cool! Glad that's working. > Now can you get DB2 to accept ; as a SQL statement terminator like the > rest of the world? They call it "An unexpected token"... > Hmm, I don't know that the execute() method guarantees to allow semicolons. Some implementations will strip a trailing semi, but they usually won't allow interior ones, because that's a good way to worsen SQL injection vulnerabilities. It's entirely possible - and within the PEP 249 spec, I believe - for semicolons to be simply rejected. ChrisA -- https://mail.python.org/mailman/listinfo/python-list