2017-02-04 9 views
0

このエラーは「カーソルが開いています」と解決するまでに数時間かかりましたので、同じ問題が発生している人のための解決策を提案するためにここに説明します。postgresql構文エラーが発生し、カーソルが開いています

問題の説明:標準機能を使用してpostgreSQLからデータを取得しようとしていますが、同じクエリがPGAdminで正しく実行されている間にSQLEXECが "構文エラー"を発生しました。 Morecover、後続のクエリが体系的に "カーソルが開いている"(それぞれの時間がPostgresプロセスを終了させ、VFP接続を再開するために必要です)。

条件:Postgresでは9.3.3はWindows XP SP2、PostgreSQLのODBCドライバー(UNICODE)バージョン9.02.01.00、Visual FoxPro 9 SP1

ソリューション:( "")のSQLExec 3番目のパラメータは、ドットを含めることはできません。たとえば、SQLExec(1、 'Select 1'、 'F')がそうでない場合、SQLExec(1、 'Select 1'、 '.F。')コマンドは問題を発生させます。

私の場合は '.F。'プログラムで生成されたため、診断が困難でした。

+0

Postgres 6.3.3は本当ですか? –

+0

Windows上で実行されたPostgres 6.xはありませんでした。 Windowsをサポートする最初のPostgresバージョンは8.0です –

+0

申し訳ありません、私はPostgres 9.9.3について話します。これで修正されました – Luc

答えて

1

これは、VFPエラーのないプログラマのエラーではありません。 3番目のパラメータは結果のカーソル名であり、ドキュメントではカーソル名にドットを付けることはできません。 OTOH 'F'は有効なカーソル名です。

構文エラーによると、長いSQL文字列リテラルを255文字以上に渡す可能性は非常に高いですが、あなたのコードが表示されないことは確かではありません。 VFPでは、文字リテラルの長さが255を超えないことも文書化されています。

+0

3番目のパラメータにドットを使用することは、確かにプログラミングエラーです。しかし、「カーソルが開いている」という症状はかなり混乱しており、その場合は文書化されていません。私はこの問題を抱える人々に説明を提案するためにこの投稿を書いた。この情報は最初の投稿に追加されます。 – Luc

関連する問題