過去の桐井戸端BBS (桐ver.8)
23342 フォームから絞り込み条件を直接入力してイベントで絞り込みを行ったとき変な値を入れるとエラーになる 島尾 2003/11/13-15:48
桐8を使用しております。
フォームから、絞り込み条件を直接入力して、絞り込みを行いたいのですが、変な値を入力されると、
KU1114:使用できない文字が使われています
などのイベントハンドラが出て、処理が中断してしまい、その後の処理がうまくいきません。
普通の言語だと予期せぬエラーの場合には例外処理をつかって、
エラーを回復して処理を継続させる事ができますが、桐の場合は別に方法があるのでしょうか?


23343 Re:イベントハンドラエラー時の例外処理 うにん 2003/11/13-19:47
記事番号23342へのコメント

フォームに入力できる値なら「使用できない」ということはありえません。
「変な値」というのが意味不明ですが、絞り込みの条件式の作り方がまずいだけではないでしょうか?

23344 エラーの原因を探しましょう ONnoji 2003/11/13-19:54
記事番号23342へのコメント
島尾さん、こんばんは。

絞り込み条件にどのような文字列を指定したのでしょうか?

コマンドの記述内容と条件に指定した文字列を見せていただければ、
エラーを出さない記述方法に関してリプライが付くと思いますけれど、いかがでしょうか?

条件に指定した文字列に記号や空白など特殊な文字がありませんか?
できるだけ詳しく、
指定した文字列と、
実行したコマンドラインを見せていただければと思います。

23345 Re:イベントハンドラエラー時の例外処理 宮城 2003/11/13-20:14
記事番号23342へのコメント
島尾さん、こんにちは。

一時的にダイアログが出るだけのような気もしますが。であるならば、
絞り込みに失敗しただけなので、次のようにでも書けばいいんですが。

名札 戻すポイント

(略)

ケース開始
 ケース(#EOF)
  確認 "アンマッチです・・・[ENT]"
  絞り込み解除
  分岐 戻すポイント
ケース終了

コマンドによっては終了キー等で制御できるものもありますね。

on error なんとかというのは桐にはないようです。

23348 Re:イベントハンドラエラー時の例外処理 うにん 2003/11/14-00:57
記事番号23343へのコメント

>フォームに入力できる値なら「使用できない」ということはありえません。
>「変な値」というのが意味不明ですが、絞り込みの条件式の作り方が
>まずいだけではないでしょうか?

どうもこのエラーは「オブジェクト名に」使用できない文字のことのようです。
だとすると検索値がオブジェクト名として使われしまっているわけですが。
いずれにしろ単なる記述ミスだと思います^^;
23351 Re:エラーの原因を探しましょう ONnoji 2003/11/14-10:33
記事番号23344へのコメント
島尾さん、こんにちは。

この掲示板の以下の過去ログも参考になるかもしれませんよ。

過去の桐井戸端BBS (桐ver.8)

10791 日付で絞り込んだとき間違った入力を判定する方法 2001/04/08

http://www.fuku3.com/~habata/kbbs/kakov8/10791.htm

外していたら、すいません。



23354 Re:エラーの原因を探しましょう ONnoji 2003/11/14-13:31
記事番号23351へのコメント
島尾さん、こんにちは。

例えば、以下のような実験をしてみると…桐ver.8 sp5

検索条件登録 "検索条件01",{[文字列]{\100}}
絞り込み 条件名="検索条件01"

------------------------------------
KU1114:使用できない文字が使われています
詳細    \100}}
ファイル名 ○×△.tbl
行番号   99
------------------------------------

となりますが…

これに類似したことでしょうかね???

23360 Re:エラーの原因を探しましょう うにん 2003/11/14-20:46
記事番号23354へのコメント

>KU1114:使用できない文字が使われています
>詳細    \100}}

お〜、よく見つけましたね。「\」でしたか。
手当たりしだいにやってみると、他には「'」もなぜかそのエラーになりました。

しかし検索値は入力した値だと言うので、実際には変数などに入っているはずであり、
このまんまの「定数値の構文エラー」とは考えにくい。

23361 叩き台になれば良いと言うつもりであり、解決策ではありません。 ONnoji 2003/11/14-22:23
記事番号23360へのコメント
うにんさん

>お〜、よく見つけましたね。「\」でしたか。
>手当たりしだいにやってみると、他には「'」もなぜかそのエラーになりました。
>しかし検索値は入力した値だと言うので、実際には変数などに入っている
>はずであり、このまんまの「定数値の構文エラー」とは考えにくい。

うにんさん、こんばんは。

この他にドル記号($)も引っかかるようです。

私の投稿は…
叩き台になれば良いと言うつもりであり、解決策ではありません。

たとえば[コマンド]コマンドだったりとか、
いろいろと考えられます。

あくまでもエラーの原因は?、ということであります。

23362 Re:叩き台になれば良いと言うつもりであり、解決策ではありません。 うにん 2003/11/14-23:03
記事番号23361へのコメント

>たとえば[コマンド]コマンドだったりとか、

それが一番怪しいですよね。
私が例に出した「オブジェクト名」も、そのままだとフォームを保存する時点でエラーになってしまいますし。

23386 Re:イベントハンドラエラー時の例外処理 島尾 2003/11/18-12:10
記事番号23342へのコメント
すいません、
概要ですが、「コマンド」コマンドをつかって
比較式そのものをユーザーより入力させて
実行させれば汎用性がたかいと思ったのですが、
予期せぬ文字列を入力されて、そのままコマンドが実行されると
エラーになるため、そのエラーを検出してダイアログに
「検索式が無効です」などを表示させて処理も復帰させる
方法を考えていました
23402 Re:イベントハンドラエラー時の例外処理 うにん 2003/11/18-23:25
記事番号23386へのコメント

>概要ですが、「コマンド」コマンドをつかって
>比較式そのものをユーザーより入力させて
>実行させれば汎用性がたかいと思ったのですが、

比較式を入力させたいだけなら「コマンド」を使わずとも
検索 [項目]_&変数
形式でできますが、

>予期せぬ文字列を入力されて、そのままコマンドが実行されると
>エラーになる

「比較式の形式に誤り」とかいうエラーは出そうですね。

>「検索式が無効です」などを表示させて処理も復帰させる
>方法を考えていました

V9には「会話検索」というコマンドができたのでそれを使うのがよろしいのでは?

23404 Re:会話処理でも… ONnoji 2003/11/19-10:51
記事番号23362へのコメント
>>たとえば[コマンド]コマンドだったりとか、
>それが一番怪しいですよね。

うにんさん、こんにちは。

例えば、[絞り込み:検索条件]ダイアログで、
文字列項目の[条件n]に

\100
'99.11.20
$100

などを指定すると…

------------------------------------
KD1641:文字列に誤りがあります
 \←
------------------------------------

等のエラーダイアログボックスが出ますね。

もちろん、

"\100"
"'99.11.20"
"$100"

のように文字列の前後を二重引用符で囲んで指定すればOKです。
※試したのは桐ver.8 sp5

会話処理でエラーに扱われるのですから、
[コマンド]コマンドで実行すればシンタックスエラーになりますね。


戻る