私はPythonでAS400と対話しようとしています。目標はSQLAlchemyを使用することですが、それが機能しなくなったら、ibm_db_saの代わりにibm_dbだけを使用して、より基本的なスクリプトに戻りました。データベース操作のためにIBM AS400サーバーに接続すると、
import ibm_db
dbConnection = ibm_db.pconnect("DATABASE=myLibrary;HOSTNAME=1.2.3.4;PORT=8471;PROTOCOL=TCPIP;UID=username;PWD=password", "", "") #this line is where it hangs
print ibm_db.conn_errormsg()
問題は、ポートのようです。私がすべての例で見る50000を使用すると、エラーが発生します。 446を使用すると、エラーが発生します。困った部分はこれです:私が8471を使用した場合、IBM says to do、私はエラーもタイムアウトも何の応答も得られません。私はスクリプトを20分以上実行しておきました。何もせずにそこに座っています。私はコマンドプロンプトをまったく使用することができないので、これは有効ですが、いかなる種類のフィードバックも私に与えることはありません。
私は毎日、ロギング、メール送信、および(大量の)データベース使用のためにこの会社と同じ400を使用しています。私たちが使用しているソフトウェアは、舞台裏でデータベースと交信し、私のマシンでうまく動作します。それは私のドライバが良いこと、ネットワーク設定が正しいことなどを伝えます。私はここから400番までtelnetでつなぐこともできます。
私はSQLAlchemyとibm_dbの電子メールリストに載っていますが、この問題については数日間通信しています。私はまた、私は検索結果の未訪問のリンクが足りなくなってきているので、それをGoogle検索しました。接続の問題が無期限にぶら下がっているようには思えません。 Pythonで試すことができるものがあれば、試してみます。私は400を直接扱っていませんが、私が必要とするものをチェック/設定する人に尋ねることができます。私が言ったように、いくつかのワークステーションは問題なく400のデータベースと対話することができ、400から実行すると、うまく作業にアクセスしたいライブラリに対してクエリが実行されます。誰かが何か提案があれば、それを聞いていただければ幸いです。ありがとう!
これについて進歩したことがあれば、ここでそれを共有すれば素晴らしいでしょう。私は、ibm_db_saのコードを突き止めて、何かが私のところに飛び出したかどうかを知りました。何かがありました: 'ibm_db_sa'の[' pyodbc.py'モジュール](https://github.com/ibmdb/python-ibmdbsa /blob/master/ibm_db_sa/ibm_db_sa/pyodbc.py)には 'AS400Dialect_pyodbc'というクラスがあり、' pyodbc_driver_name'には正しい値があります。 SQLAlchemyをDB2 for iで動かすには、明らかに少なくとも*いくつかの試みが行われました。 –
私はしていません。さて、私のアプリは動いていますが、今はpyodbcだけに依存しています。私はpyodbcに接続してSAを使用しようとしましたが、create_engineへの接続を行う関数を渡しましたが、うまくいきませんでした。 – AH16
SQLAlchemyの余分な機能を持たないとどれくらい傷つきますか?そして(a)Pythonを知っていて、(b)SQLAlchemyを知っていますか?私が尋ねる理由は、もう少し掘り出して突き詰めることによって、 'create_engine()'を使ってエンジンを正常に作成し、そのエンジンを使って裸のSQLクエリを実行することができたからです。言い換えれば、私はSQLAlchemyをPyODBC用の非常に畳み込まれたラッパーとして機能させることができます。私は自分の発見を分かち合うことができて嬉しいですが、私はORMを一度も使用していないので、SQLAlchemyを十分に活用する前に、さらに問題が潜んでいる可能性があります。 –