富士通

NetCOBOL 技術情報:トラブルシューティング

エラー

Windows x86, .NET

NetCOBOLシリーズ

Q

ODBCを利用してデータベースの可変長文字列を読み込むプログラムを翻訳すると「JMN2633I-S SQL文に誤りがあります。ODBC-8431E "XXX"文に誤ったSQL文変数の指定があります」のエラーメッセージが出力されます。

A

SQL文に指定したホスト変数に文法上の誤りがあります。
データベースの可変長文字列に対応するホスト変数を指定している場合は、 レベル番号49の基本項目を従属する集団項目でなければなりません。レベル番号を49にするか、 翻訳オプションNOSQLGRPを指定してください。また、SQL文によっては、指定できないホスト変数の形式があります。

翻訳オプションSQLGRPについては、以下のマニュアルを参照してください。
NetCOBOL使用手引書

  • 付録 A.2.48 SQLGRP(SQLのホスト変数定義の拡張)

なお、COBOL97 V50L10までは、従属項目のレベル番号が49以下でも可変長文字列に対応するホスト変数とみなしていましたが、COBOL97 V60L10以降およびNetCOBOLでは、複数列指定ホスト変数とみなします。

SQL文と指定できるホスト変数の形式については、以下のマニュアルを参照してください。
NetCOBOL使用手引書

  • 21.10 SQL文と指定可能なホスト変数