アプリケーションのコンパイル時に出力されるエラーメッセージごとに、その対処方法を説明します。
「qdg12226e: ルーチン定義の実行で重症エラーを検出しました」
処理 | プロシジャ定義 |
事象 | コンパイルエラー |
メッセージ | qdg12226e: ルーチン定義の実行で重症エラーを検出しました 詳細メッセージ='JYP8635E “INTEGER”の前後にセミコロンが指定されていません.' |
埋込みエラー番号 | - |
セミコロンの対応がとれていないため、エラーが発生しています。ただし、以下に示すように、重要なキーワードが足りないことにより、セミコロンの対応が崩れている場合もあります。
CREATE PROCEDURE S.P1(IN PARA1 INTEGER) BEGIN DECLARE A INTEGER ; SET A = PARA1 + 1 ; INSERT INTO T1(C_ID, U_NO, S_CODE) VALUES ('IDxxxxxx', A, '0001') ; END ;
qdg12226e: ルーチン定義の実行で重症エラーを検出しました 詳細メッセージ='JYP8635E “INTEGER”の前後にセミコロンが指定されていません.’
プロシジャルーチンを定義する場合、プロシジャルーチンの前後をEXEC SQLとEND-EXEC;で囲って定義します。これにより、上記定義文では、BEGIN- END; におけるENDの後ろのセミコロン(;)は不要となります。
以下にプロシジャルーチン定義文を記述します。
EXEC SQL CREATE PROCEDURE S.P1(IN PARA1 INTEGER) BEGIN DECLARE A INTEGER ; SET A = PARA1 + 1 ; INSERT INTO T1(C_ID, U_NO, S_CODE) VALUES ('IDxxxxxx', A, '0001') ; END END-EXEC ;
なお、プロシジャルーチン定義時(rdbddlex)は、以下のようにxオプションを指定してコマンドを実行することが必要です。
rdbddlex -d データベース名 -x 入力ファイル
参照
詳細は、“アプリケーション開発ガイド(共通編)”の“プロシジャルーチンの定義”を参照してください。
「LINK fatal Error LNK1181:"f3cwdrv.lib"が開けません」
処理 | Sqlcobol |
事象 | リンクエラー |
メッセージ | LINK fatal Error LNK1181:"f3cwdrv.lib"が開けません |
埋込みエラー番号 | - |
環境変数“lib”に、Symfoware Serverをインストールしたドライブの“\SFWSV\ESQL\LIB”が追加されていない可能性があります。
すでに追加されている場合は、同一マシン上にSymfoware Serverと同梱されているクライアント機能がインストールされているかを確認してください。インストールされている場合は、Symfoware Serverをインストール後、クライアント機能をインストールする必要がありますので、クライアント機能を一度アンインストールしたあと、再インストールしてください。
「qdg12227e: データベーススペース定義文の実行で重症エラーを検出しました」
処理 | データベーススペース定義 |
事象 | コンパイルエラー |
メッセージ | qdg12227e: データベーススペース定義文の実行で重症エラーを検出しました 詳細メッセージ='JYP4103E オペランド“/RDB2/DBS01 ATTRIBUTE”以降の指定“SPACE”に誤りがあります.' |
埋込みエラー番号 | - |
以下に示すように、データベーススペースのファイル名とATTRIBUTEの間に全角の空白が指定されているため、エラーが発生しています。
ファイル名とATTRIBUTEの間に全角の空白がないかを確認してください。
全角の空白がある場合は、取り除いて再実行してください。
CREATE DBSPACE RDBS01 ALLOCATE FILE /RDB2/DBS01□ATTRIBUTE SPACE(2M)
注)□は全角の空白です。
qdg12227e: データベーススペース定義文の実行で重症エラーを検出しました 詳細メッセージ='JYP4103E オペランド“/RDB2/DBS01 ATTRIBUTE”以降の指定“SPACE”に誤りがあります.'