
初歩的なことをお聞きします。
過去に、データベース(MDB)を使用したアプリを外注に作ってもらったのですが、なかなかうまくいきません。
現象はMDBが壊れたり、MDBのテーブルやクエリ自体がすべて消えてしまったりしています。なんでだからさっぱり分かりません。
過去にMDBが壊れやすいというのは聞いたことがあります。ただ、スタンドアローンで使用していますしそれほど付加をかけていないように思われます(外注談)。また、外注からはソフトでDBを壊すことは出来ないという回答も頂き、Windows2000のSP3にして様子を見てくれといわれました。
元々設計から開発まで外注任せにしていたせいもあり、そのソフトの構造を良く理解しておりません。
まず、どういった調査が必要か、または外注にどういうふうに言って対応してもらったら良いか教えて頂けないでしょうか。(過去の経験談でも構いません)
開発言語はVB6(SP5)です。(Jetを使っています)
何卒宜しくお願いします。
No.1ベストアンサー
- 回答日時:
VCでMDBのDBを操作するプログラムを作っています。
外注の人に以下の点を確認してみてください。
1.プログラムのどこかでVCからMDBを最適化していないか。
2.例外処理時やエラー時のクローズ等は完璧か。
3.ビギンセッションとコミット(ロールバック)を正しく行っているか。
1については、MDBは「最適化をVCから行ってはいけません」。テーブル情報以外の情報がすべて失われてしまいます。
2については、「例外」と呼ばれる特殊なエラーが発生したときに、正式な手順を踏まずに強引に終了したりすると、MDBのテーブル構造が壊れる可能性があります。
3については、マイクロソフトのライブラリの仕様だかバグだかにより、これやんないとMDBに正しく読み書きできないことがあります。
また、実際にMDBを運用している人に、定期的に最適化を行っているかも確認してみてください。
MDBは使ってるうちにゴミが溜まっていくので、ファイルが肥大化するごとに定期的に最適化する必要があります。
それから、「ソフトでDBを壊すことは出来ない」というこの言葉は、ちょっと自信過剰なんじゃないかと思います。
どういう経由でMDBを開いてるのか知りませんが、壊れるときは壊れます。
この回答への補足
早速の回答ありがとうございます。以下に補足させて頂きます。
1.についてソフトの開発言語はVBですがVBで最適化するのもまずいんですかね。
現在の仕様では一日一回行っております。詳しい情報と回避方法があれば教えて下さい。
3.良く分かりません。詳しい説明があるところを教えて頂けないでしょうか。
No.6
- 回答日時:
このケースはまず障害をうまく切り分ける必要があると思います。
「MDBが壊れたり、MDBのテーブルやクエリ自体がすべて消えてしまったりしています」。
ここで、どのタイミングで壊れるのか。必ずか、たまにか。
出来れば日時の記録をとって、外注と話をしましょう。
Windows2000のSP3にして・・・
マシン環境が書かれていないので、状況が良く見えませんが。
サービスパックの所為にして逃げるのはへっぽこSEの常套手段です。
契約上出来れば外注を呼び出し、直るまで缶詰ですね。
No.5
- 回答日時:
>DAO、ADO?で用意されているメソッドでは問題ないんですかね。
それは分かりません(^_^;
Win32APIというのは、DAO、ADO、RDOその他含めてという意味でした。
No.4
- 回答日時:
1.についてですが、VBでも、MDBを操作するには結局Win32APIなどを利用することになり、これらはCと変わりません。
VBとVCを読み間違え、例外の話をしてしまいましたが、VBに例外エラーはありません。すいません(^_^;
3は、これはプログラマーでないと話が通じないと思います。
つまり、MDBの操作手順として定められた正しい手順を使っているかどうか、ということです。
この回答への補足
度々で申し訳ありませんが再度質問があります。
先程Win32APIとありましたが、これはWin32APIの問題であって、DAO、ADO?で用意されている
メソッド(RepairDatabaseメソッド、CompactDatabaseメソッド )では問題ないんですかね。
宜しくお願いします。
No.3
- 回答日時:
外注任せにしているというのは、不安材料ですね。
結局、構造を理解できていないと、外注を責めることもできません。
また保守もできませんね。
MDBが壊れやすいというのは、よく言われていますが大抵の場合原因があります。ユーザの誤操作や、プログラムの不具合によるメッセージに対してのユーザの誤操作が原因になることが多かったようです。
プログラム納品時には、通常設計資料などを納入する契約があるはずですが、それらはどうなっているのでしょうか?設計資料があれば構造もわかると思います。
無ければ、そのソフトによって業務が止まるなどの問題が起きている場合にはその状況(問題が起こる頻度等)を書面にして、外注に責任を取ってもらうしかないでしょうね。上司や会社の営業などに相談するのも良いかもしれません。
早速の回答ありがとうございます。
確かに構造を理解していないと、色々と厄介ですね。(反省してます)
また、相手からの納品物で、構造仕様書(とあるがほとんど機能仕様書)とモジュールぐらいです。ソースを解析するには手間暇が掛かりすぎるので実際行っておりませんが、最悪のことを考えて今から準備が必要ですかね。トホホ。
No.2
- 回答日時:
まず、契約書を見直してみたらどうでしょうか?
契約書の中にはバグ発生時の処置や保守についての項目があると思います。
それに沿った形で対応してもらえばいいと思います。
MDBがどういう条件のときの壊れるかは、マイクロソフトでさえよくわかって
ないです。いわんや、その業者がわかるわけないです。
自衛策としては、定期的にバックアップをとっておいて、壊れたときに
備えるしかないです。
早速の回答有難うございます。
契約書の方確認してみます。といっても何処にあるのやら(笑)
やはり壊れる時は壊れると考え、壊れた時の対処方法を重んじるべきなんですかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「テーブルに座って……」という...
-
L2SWはARPテーブルを持っている?
-
【エクセル】データテーブルの...
-
外部キーだけのテーブル(主キ...
-
飲み会で、座敷orテーブルどち...
-
UTF8のテーブルをODBCドライバ...
-
下記、問題に対しての解答が以...
-
1対1のリレーション(主キー同...
-
会社の飲み会の幹事になり、座...
-
論理名とコメント構文(?)について
-
ACCESS VBA でテーブルの定義だ...
-
MACアドレス見えない
-
[DB設計]多対多の問題点とは
-
mysqlでオブジェクト指向データ...
-
Access データベースを分割した...
-
複雑なSQL文について
-
親子関係のテーブルについて
-
エクセルで都道府県、市区町村...
-
男性と2人で飲食店に行きテーブ...
-
off of と fromの違いを教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「テーブルに座って……」という...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
テーブルリンク リンク元を知...
-
オーダーの覚え方について
-
下記、問題に対しての解答が以...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
【エクセル】データテーブルの...
-
L2SWはARPテーブルを持っている?
-
面接のときテーブルが正面に。...
-
男性と2人で飲食店に行きテーブ...
-
UTF8のテーブルをODBCドライバ...
-
お金持ちのテーブル
-
1つのテーブルに同じデータを参...
-
テーブル名の前のドットの意味
-
複雑なSQL文について
-
データベースの接続に失敗して...
-
【PHP】SQL文のSUM関数で出力し...
-
更新されたテーブルを表示したい
おすすめ情報