意図しない処理が行われて先に進みません。。。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 意図しない処理が行われて先に進みません。。。

Re: 意図しない処理が行われて先に進みません。。。

#4

by PonPon » 4年前

データベースが開けないとエラーに書いてあるので
エラーチェックをしていなかった
sqlite3_openのすぐ後ろに同様のエラーチェックを追加しました。

コード:

ret = sqlite3_open("SW_Info.db",&db);
if (ret != SQLITE_OK)
{
	MessageBox(hWnd, (LPCSTR)sqlite3_errmsg(db), (LPCSTR)"ERROR 0001", MB_OK);
	sqlite3_close(db);
	sqlite3_free(err);
	FreeLibrary(hDll);
	return FALSE;
}
するとやはり上記の動作をしたときはここでエラーが出てるようです。
なぜデータベースを開けなくなってしまっているのでしょうか?

Re: 意図しない処理が行われて先に進みません。。。

#3

by PonPon » 4年前

みけCATさん、見ていただきありがとうございます。
再現できませんでしたか?
データベースに参照したファイルの絶対パスを書き込めたのでしょうか???

hDllを渡してたのはミスでした。ずっとコピペしてたので最初からのミスに気づきませんでした。
教えていただきありがとうございます。

さて、こちら側での動作ですが
・一番最初にパス編集ダイアログが作成されたときはエラーが出ない
・参照ボタンを押さずに編集ボタンを押すとエラーが出ない
・参照ボタンを押して他のファイルを選択し編集ボタンを押すとError 0007の場所でunable to open database fileとエラーが出る。
・上記エラーが出た後に再度編集ダイアログを作成するとError 0005の場所で同様にunable to open database fileとエラーが出る。
このようになります。

エディットボックス内をどう変更したかですが、どの実行ファイル(exe)を指定しても同様のエラーになります。

下に動作確認しているところを撮影してアップロードしました。
https://4.gigafile.nu/0717-dc27c588792f ... 62558c0a7f
DL PASS:57630

よろしくお願いします。

Re: 意図しない処理が行われて先に進みません。。。

#2

by みけCAT » 4年前

手元の環境ではエラーを再現できませんでした。
具体的にどのようなエラーが戻ってくるのか教えていただけますか?
もしよろしければ、エディットボックス内をどう変更したかも教えてください。

ちなみに、sqlite3_errmsgに本来渡すべきと考えられるdbではなくhDllを渡しているのはなぜですか?

意図しない処理が行われて先に進みません。。。

#1

by PonPon » 4年前

作成途中のソースファイルを一式添付しました。

mysys.c内の104行目

コード:

 else if(flag == PATH_VIEW)
から最後までの処理が意図しない動作になります。

初回起動時、既存の他アプリの絶対パスをデータベース(SQLite)に登録しています。
メニューからパスを編集できるダイアログを作成し、エディットボックス内に現在登録されている絶対パスを表示しています。
・エディットボックス内を変更することなく編集ボタンを押すと意図した通りの動作になってると思われます。
・エディットボックス内を変更して編集ボタンを押すとSQL側のエラーが戻ってきます。
・エディットボックス内を変更することなくダイアログを閉じ、再度開くと意図した通りの動作になります。
・エディットボックス内を変更して編集ボタンを押しSQL側のエラーの後、ダイアログを再度開くと別のSQLエラー文が戻ってきます。

質問は
・エディットボックス内を変更したときのしなかったときのSQL文は変わらないのになぜ変更したときはSQLでエラーを吐くのか?
・なぜエディットボックス内を変更したときとしなかったときでダイアログを開くときの動作が変わるのか?

以上2点の質問ですが、解決方法と出来ればなぜこのような動作になってしまったかの理由が知りたいです。
どうぞよろしくお願いします。
添付ファイル
sw_acc.zip
(618.34 KiB) ダウンロード数: 128 回

ページトップ