ページの先頭行へ戻る
Symfoware Server V11.0.0 トラブルシューティング集(データベース簡単運用編)
Symfoware

A.2.3 アプリケーションコンパイル時のエラーメッセージ

アプリケーションのコンパイル時に出力されるエラーメッセージごとに、その対処方法を説明します。

「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 入力ファイル

参照

詳細は、“アプリケーション開発ガイド(共通編)”の“プロシジャルーチンの定義”を参照してください。

Windows「LINK fatal Error LNK1181:"f3cwdrv.lib"が開けません」

処理

Sqlcobol

事象

リンクエラー

メッセージ

LINK fatal Error LNK1181:"f3cwdrv.lib"が開けません

埋込みエラー番号

原因と対処

環境変数“lib”に、Symfoware Serverをインストールしたドライブの“\SFWSV\ESQL\LIB”が追加されていない可能性があります。
そのため、Symfoware Server(サーバ機能、クライアント機能)をアンインストールしたあと、再度インストールしてください。
すでに追加されている場合は、同一マシン上にSymfoware Serverと同梱されているクライアント機能がインストールされているかを確認してください。
インストールされている場合は一部ファイルが破損している可能性がありますので、Symfoware Serverを再インストールしてください。