レコードセットの並び順でドツボにはまった!
顧客管理ソフト「T&A顧客管理」を開発中です。
完成したら、無料で配布します。
予期しない動きのせいで、丸1日ドツボにはまりました。
(ソフトを開発していると、よくあることなのですが・・・)
新しい顧客の登録テストを行っていましたが、登録出来ているはずなのに、アプリを再起動すると消えているのです。
しかし、元のデータベースのテーブルを確認すると、ちゃんと存在しているのです。
当然私のプログラムにバグがあるのだと思い、何度もチェックしましたが、分かりません。
その日は結局最後まで原因が分からず帰宅しました。
こういう時は自宅でも、このことが頭から離れません。
寝床に入ってからも、寝付くまでずっと考えていました。
翌朝、やっと原因に気づきました!
通常新規追加したデータは、テーブルの最後に追加され、実際にテーブルを見ると最後に存在しています。
それがフォームを再表示すると、最後に無いのです。
しかしそれは、消えたり読み込みできていなかった訳ではなく、別の場所(順番)に存在していたのです。
私のプログラムは、Microsoft Accessで作成しており、複数の作業者(PC)でデータを共有して作業をしやすいように、データベースとアプリは別にしており、ADO方式でデータベースと接続しています。
その場合、レコードセット(テーブルの複製みたいなもの)を作成してフォームと連結し、フォームからデータを追加したり更新したりできるようになります。
テーブルから作成されたレコードセットのデータの順番がテーブルの順番と変わるということは、まさか想像していませんでした。
因みにネットで検索しても、同様の情報は見つかりませんでした。
これはあくまでも私の推測ですが、今回の顧客テーブルの主キーのフィールドの型がオートナンバー型で、新しくデータを追加すると自動で連番が付与されます。
このテーブルの中のデータを削除した場合、その席が空席になり、レコードセット場合は新しいデータがその席に座らされるのだと思います。
もしかしたら、これはADOのバグかもしれません。
いずれにしても原因が分かり、やれやれです。
レコードセットをOpenする時に、主キーのフィールド(連番)順に並べ替えるようにプログラムを修正しました。
ソフトを開発していると、壁にぶち当たって時間が掛かることがよくありますが、一晩寝て頭をリセットすると解決することもよくあります。
完成したら、無料で配布します。
予期しない動きのせいで、丸1日ドツボにはまりました。
(ソフトを開発していると、よくあることなのですが・・・)
新しい顧客の登録テストを行っていましたが、登録出来ているはずなのに、アプリを再起動すると消えているのです。
しかし、元のデータベースのテーブルを確認すると、ちゃんと存在しているのです。
当然私のプログラムにバグがあるのだと思い、何度もチェックしましたが、分かりません。
その日は結局最後まで原因が分からず帰宅しました。
こういう時は自宅でも、このことが頭から離れません。
寝床に入ってからも、寝付くまでずっと考えていました。
翌朝、やっと原因に気づきました!
通常新規追加したデータは、テーブルの最後に追加され、実際にテーブルを見ると最後に存在しています。
それがフォームを再表示すると、最後に無いのです。
しかしそれは、消えたり読み込みできていなかった訳ではなく、別の場所(順番)に存在していたのです。
私のプログラムは、Microsoft Accessで作成しており、複数の作業者(PC)でデータを共有して作業をしやすいように、データベースとアプリは別にしており、ADO方式でデータベースと接続しています。
その場合、レコードセット(テーブルの複製みたいなもの)を作成してフォームと連結し、フォームからデータを追加したり更新したりできるようになります。
テーブルから作成されたレコードセットのデータの順番がテーブルの順番と変わるということは、まさか想像していませんでした。
因みにネットで検索しても、同様の情報は見つかりませんでした。
これはあくまでも私の推測ですが、今回の顧客テーブルの主キーのフィールドの型がオートナンバー型で、新しくデータを追加すると自動で連番が付与されます。
このテーブルの中のデータを削除した場合、その席が空席になり、レコードセット場合は新しいデータがその席に座らされるのだと思います。
もしかしたら、これはADOのバグかもしれません。
いずれにしても原因が分かり、やれやれです。
レコードセットをOpenする時に、主キーのフィールド(連番)順に並べ替えるようにプログラムを修正しました。
ソフトを開発していると、壁にぶち当たって時間が掛かることがよくありますが、一晩寝て頭をリセットすると解決することもよくあります。
スポンサーサイト