問題タブ [unixodbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3365 参照

sqlite - pyodbc と unixODBC を使用して sqlite3 データベースに接続するにはどうすればよいですか?

pyodbc を使用して sqlite データベースに接続する方法がわかりません。DSN をセットアップしており、isql 経由で問題なく接続できます。

魅力のように機能しますが、

次のエラー メッセージが表示されます。

また、 https: //code.google.com/p/pyodbc/wiki/GettingStartedの例にある接続文字列の順列を大量に試しましたが、役に立ちませんでした。

libsqlite3odbc.soへのパスを保持する値で接続しようとしているdsnをリストします

明らかな何かが欠けていると思いますが、何がわかりません...

編集: unixODBC 2.3.0、python 2.7.1、sqliteodbc 0.88、および pyodbc 2.1.8 の使用 編集: pyodbc を使用する理由は、Windows および MS Access への移植性のためです。

0 投票する
1 に答える
452 参照

php - レンダリングの代わりに PHP ページをダウンロードする成功した結果で odbc_exec を使用すると、

私は非常に奇妙な問題を抱えています。FreeTDS で unixODBC を使用して MSSQL サーバーに接続しています。

PHP をレンダリングする代わりに、odbc_exec を使用して有効なクエリを生成する SQL コマンドを実行すると、php ファイルをダウンロードするように求めるプロンプトが表示されます。

不適切な形式のステートメントで意図的に SQL を中断すると、ページは正常にレンダリングされ、エラー ステートメントが表示されます。

コマンド ライン isql を使用してデータベースに接続し、クエリを実行すると、コマンド ライン レベルで結果を取得できます。

CentOS 5.5 64ビット

MSSQL 2005 SP3

unixODBC 2.3.0

フリーTDS 0.82

PHP5.3.5

0 投票する
2 に答える
7076 参照

python - pyodbcはどのようにエンコーディングを決定しますか?

私はSybaseSQLAnywhere 12をPython(およびTwisted)と一緒に数週間戦っていますが、自分のものも機能するようになりました。

煩わしさは1つだけ残っています。デプロイメントプラットフォームであるカスタムPython2.7.1を使用してCentOS5でスクリプトを実行すると、UTF-8として結果が得られます。

Ubuntuボックス(Natty Narwhal)で実行すると、latin1で取得できます。

言うまでもなく、すべてのデータをUnicodeで取得したいのですが、それはこの質問のポイントではありません。:)

どちらも64ビットボックスで、どちらにもカスタムPython2.7.1があります。UCS4とカスタムビルドのunixODBC2.3.0を使用します。

私はここで途方に暮れています。そのドキュメントが見つかりません。pyodbcまたはunixODBCが2つのボックスで異なる動作をする理由は何ですか?

難しい事実:

  • Python:2.7.1
  • DB:SQL Anywhere 12
  • unixODBC:2.3.0(2.2.14は同じように動作しました)、同一のフラグで自己コンパイル
  • ODBCドライバー:Sybaseからのオリジナル。
  • CentOS 5はUTF-8を提供し、UbuntuNattyNarwhalはlatin1を提供します。

私のodbc.iniは次のようになります。

DNS='sybase'を使用して接続します。

TIA!

0 投票する
1 に答える
1326 参照

c++ - unixODBC C++ ドキュメント...?

見つかりません。

私が見つけたのはhttp://libodbcxx.sourceforge.net/だけですが、これは私にとって適切なドキュメントではありません。C++ 用の UnixODBC ライブラリを入手しましたが、ドキュメントが見つかりません

ヘッダーにこれがあります:

しかし、sourceforge のドキュメントはまったく異なります。マクロ (または のようなものは何でもSQL_SUCCEEDED) は同じですが、クラスの名前は異なります。たとえば、のクラスはODBCStatement.his ODBCStatement、 not odbc::Statementodbc::ErrorHandlerisODBCHandleなどです。、、ODBCStatementなどのクラスの奇妙なメンバー関数と、Google はそれらについて何も知らない.......doBindParameterdoPreparedoExecute

何か案は?

PS私はコードが私によって書かれていない製品を維持しています。

0 投票する
5 に答える
14294 参照

php - LinuxのphpからMS Accessリモート.mdbファイルに接続します

私は数日間インターネットを掘り下げ、非常に古い情報を読んで、非常に古くて存在しないサイトにつながりましたが、私の目標を達成するために何が必要かを理解しました.

  1. WindowsXP を実行しているサーバーに file.mdb があるので、ODBC データ ソースに追加する必要があります。その.mdbファイルへのアクセスを許可する「システムDSN」で終わる簡単な手順でそれを行います
  2. この同じサーバーにある種の ODBC ブリッジをインストールする必要があります。これにより、このサーバーへのリモート接続を作成し、そのブリッジをサーバーの ODBC DSN に接続し、自分のものを照会できます (無料の ODBC ブリッジが見つかりませんでした)。
  3. UNIX (FreeBSD) マシンでは、unixODBC および php5-odbc パッケージをインストールして、ODBC への接続を有効にする必要があります (インストール済み)。
  4. リモートODBCに接続してMS Access dbドライバーを使用するには、UNIXマシン内にある.soファイルにunixODBC用のドライバーが必要です(無料のMS Accessドライバーが見つかりませんでした)
  5. PHP odbc_connect(DSN,user,password) を使用してそのサーバーに接続し、DSN で、使用する必要がある接続情報とドライバー (MS Access ドライバー) を提供する必要があります。

私が間違っている場合は訂正してください。そのような接続を実現する方法について、さらにアドバイスをお願いします。

0 投票する
1 に答える
1378 参照

php - ODBC 列の長さの制限

ODBC と PHP を介して InterSystems Cache データベースを使用しています。

列名の長さと、列名のテキストに無効な文字が返されるという問題が発生しました。

列 (フィールド) 名の長さが 31 文字を超える場合、列名は無効な文字で返されます。

スクリーンショット 1

最大 31 文字のフィールド名を明示的に定義すると、次のようになります。

無効な文字が表示されなくなりました

スクリーンショット 2

他の誰かがこの問題または同様の問題に遭遇したことがありますか?

どんな助けでも大歓迎です。

前もって感謝します!

マイク

0 投票する
2 に答える
2305 参照

mysql - unixodbcドライバーを使用してmysqlに接続し、デフォルトのデータベースが機能しない

私はunixodbcodbc.ini設定ファイルを次のように持っています:

そして問題は、上記で指定された「test」であるデータベースを使用しないことです。

私がしなければならないことは、データベースに変更してクエリを実行するために直接SQLを手動で実行することです。

mysqlコマンドである「USEtest」をどのように取り除くべきかについてのアイデア。unixodbcが'test'をデフォルトのデータベースとして設定していないのはなぜですか?それはすでにconfファイルで指定されているのですか?

0 投票する
1 に答える
424 参照

c - unixODBC C APIと同等のRaiseError(PERL、DBI)?

INFORMIXDBでいくつかのストアドプロシージャ/関数を実行する際に問題が発生しました。私はさまざまなクライアントで試しましたが、それらはすべて同じでした-これの代わりに、実行時にエラーを検出する人は誰もいません-空の応答を返します。そして、これは私にはうまくいきません。

最後に、次のようなPERL DBI設定オプションがあることがわかりました。RaiseError

そして、これは完璧に機能します。unixODBC C APIしかし、 libに相当するものはありますか(残念ながら、何も見つかりませんでした) ?


さらに:私はと同じクエリを試しましたがisql、同じです!エラーはありません。結果は空です:\おそらく、構成する必要のあるオプションである可能性があります(でodbc.ini、私は推測します)?


編集:わかりました、ここにいくつかの詳細があります:
バージョン:unixODBC 2.3.0

そして、とからの結果isqlODBC C API同じです。ここに詳細がありC APIます:

SQLMoreResults戻るためのすべての呼び出しSQL_NO_DATA、すべてSQLFetch戻るSQL_ERROR

まとめ-間違ったプロシージャへの呼び出しはすべて問題ありません-エラーが返されます。ただし、このエラーがストアド関数にある場合、エラーは検出されません。これの代わりに-EMPTY文字列が返されます。アウトチ!

SQL_SUCCESS_WITH_INFOどこにも返されません。そして、他の多くのエラーについてはこのようになっています(もちろん、すべてではありませんが、これは単なる例です)


そしてさらに!次のような手順または機能:

Aqua DB studioはエラーを返しますが、エラーは返しません。


答え:

私はボヒカの答えを受け入れます。それは正しく、そのPERL DBI部分について正しく答えているからです。また、彼は本当に私を助けてくれました(ヒットstrace)。

とにかく、本当の解決策はここにはありません。関連する質問に投稿しました。これは、特定のケースについてより具体的で分離されています。同じエラーがストアド**プロシージャ**で検出されますが、ストアド**関数**では検出されません。

0 投票する
3 に答える
1363 参照

c - 同じエラーがストアド**プロシージャ**で検出されますが、ストアド**関数**では検出されません

この質問は私の前の質問に関連しています:unixODBC C APIと同等のRaiseError(PERL、DBI)?

後で問題を切り分けたので、新しい質問を投稿します。それは、より具体的で、切り分けられ、不要な情報がないものです。


バージョン:unixODBC 2.3.0
lib:unixODBC-C API

ストアドファンクションがあるとします:

そして同じボディですが、ストアドプロシージャにあります:

ご覧のとおり、まったく同じです。デバッグファイルへのパスが間違っているため、エラーが発生する可能性があります。call func()エラーから実行するとAqua Data Studio、エラーが検出されます。

も同じですcall proc(1)

しかし、 unixODBCSQLExecuteを介して(を使用して)これらの2つの呼び出しを実行すると

戻りますSQL_ERROR(これは期待されて問題ありません)が、

戻り値SQL_SUCCESS..しかし 'result is set here'、返されません。代わりに、空の文字列('')が返されます。

実行call func()すると、と同じ結果が得られます。execute function func();

を呼び出すと、がSQLMoreResults返されます。SQL_NO_DATASQLFetchSQL_ERROR

何か案は?

0 投票する
5 に答える
4013 参照

php - odbcをapacheで動作させることができません

apt-get installを使用してunixODBCをインストールしましたが、odbc_connect()を使用しようとすると、このエラーが発生します。

PHPで動作するように設定するには何をする必要がありますか?私はオンラインで探していましたが、それを本当に理解することはできません。