Connecting to AS400 from native ibm_db_dbi driver would need db2 connect
which is a separated product from IBM. Use the ibm_db_sa pyodbc driver
instead, or jdbc (jython) if you don't have db2 connect installed on your
machine.

Salam,

-Jaimy
On Feb 11, 2016 01:50, "Alex Hall" <ah...@autodist.com> wrote:

> Hello list,
> I sent this to the ibm_db list yesterday, but no one has responded
> yet. Since it's as much ibm_db as SA, I thought I'd try here as well
> in case any of you have used an AS400 before. I have ibm_db,
> ibm_db_sa, the latest sqlalchemy, and Python 2.7 (latest) installed. I
> can talk to SQLite with no trouble, it's talking to this 400 that
> won't work. Anyway...
>
> I'm finally ready to hook my app to the 400 instead of the local
> SQLite database I've been using for testing. Here's my simple script:
>
> import globals
> import logging
> from sqlalchemy import *
> from sqlalchemy.ext.declarative import declarative_base
> from sqlalchemy.orm import sessionmaker
>
> #set up the sqlalchemy objects
> dbEngine = create_engine('ibm_db_sa://
> username:passw...@mysite.com:8471/database')
> Session = sessionmaker(bind = dbEngine) #note that's a capital s on Session
> session = Session() #lowercase s
> base = declarative_base()
>
> def getAllTables():
>  dbInspector = inspect(dbEngine)
>  for table in dbInspector.get_table_names():
>   print table
>
> getAllTables()
>
> When I run that, it waits thirty seconds or so, then tells me there
> was an error. I'll paste the entire traceback below. Sorry in
> advance--it's pretty long.
>
> Microsoft Windows [Version 6.1.7601]
> Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
>
> C:\Users\admin\Dropbox\Autodist\jobs>c:\python27\python.exe DBInterface2.py
> Traceback (most recent call last):
>   File "DBInterface2.py", line 24, in <module>
>     getAllTables()
>   File "DBInterface2.py", line 18, in getAllTables
>     dbInspector = inspect(dbEngine)
>   File "c:\python27\lib\site-packages\sqlalchemy\inspection.py", line 63,
> in ins
> pect
>     ret = reg(subject)
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\reflection.py",
> line 139
> , in _insp
>     return Inspector.from_engine(bind)
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\reflection.py",
> line 135
> , in from_engine
>     return Inspector(bind)
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\reflection.py",
> line 109
> , in __init__
>     bind.connect().close()
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line
> 2018, in
> connect
>     return self._connection_cls(self, **kwargs)
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 72,
> in __
> init__
>     if connection is not None else engine.raw_connection()
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line
> 2104, in
> raw_connection
>     self.pool.unique_connection, _connection)
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line
> 2078, in
> _wrap_pool_connect
>     e, dialect, self)
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line
> 1405, in
> _handle_dbapi_exception_noconnection
>     exc_info
>   File "c:\python27\lib\site-packages\sqlalchemy\util\compat.py", line
> 200, in r
> aise_from_cause
>     reraise(type(exception), exception, tb=exc_tb)
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line
> 2074, in
> _wrap_pool_connect
>     return fn()
>   File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 318, in
> unique_c
> onnection
>     return _ConnectionFairy._checkout(self)
>   File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 713, in
> _checkou
> t
>     fairy = _ConnectionRecord.checkout(pool)
>   File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 480, in
> checkout
>
>     rec = pool._do_get()
>   File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 1060, in
> _do_get
>
>     self._dec_overflow()
>   File "c:\python27\lib\site-packages\sqlalchemy\util\langhelpers.py",
> line 60,
> in __exit__
>     compat.reraise(exc_type, exc_value, exc_tb)
>   File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 1057, in
> _do_get
>
>     return self._create_connection()
>   File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 323, in
> _create_
> connection
>     return _ConnectionRecord(self)
>   File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 449, in
> __init__
>
>     self.connection = self.__connect()
>   File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 607, in
> __connec
> t
>     connection = self.__pool._invoke_creator(self)
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\strategies.py",
> line 97,
>  in connect
>     return dialect.connect(*cargs, **cparams)
>   File "c:\python27\lib\site-packages\sqlalchemy\engine\default.py", line
> 385, i
> n connect
>     return self.dbapi.connect(*cargs, **cparams)
>   File
> "c:\python27\lib\site-packages\ibm_db-2.0.6-py2.7.egg\ibm_db_dbi.py", lin
> e 588, in connect
>     raise _get_exception(inst)
> sqlalchemy.exc.OperationalError: (ibm_db_dbi.OperationalError)
> ibm_db_dbi::Opera
> tionalError: [IBM][CLI Driver] SQL30081N  A communication error has been
> detecte
> d. Communication protocol being used: "TCP/IP".  Communication API being
> used: "
> SOCKETS".  Location where the error was detected: "[IP of the 400
> server]".  Communicatio
> n function detecting the error: "connect".  Protocol specific error
> code(s): "10
> 060", "*", "*".  SQLSTATE=08001\r SQLCODE=-30081
>
> (I took out the actual IP). I'm not sure what most of that means, but
> it looks like I can't connect to the 400 for some reason. Bad
> credentials or something could be it, I suppose, but I'm using what my
> work told me to use. I wondered if anyone here could spot the problem
> before I go chasing different login details that I don't actually
> need. Thanks in advance for any help.
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to