電子書籍の厳選無料作品が豊富!

お世話になります。
現在、VB.NET(2005)でオラクルデータを取得するプログラムが
あるんですが、自動起動するとデータが漏れる現象が起きています。
手動で起動するとすべてのデータが取得できます。

同じような現象が起こった方いませんでしょうか?
もし分かる方がいらっしゃいましたら、どのように対処したのか
教えて頂きたく思います。

ちなみに、私はVB.NETでの作成経験がありませんので、
詳しい事が分かりません。
外注業者さんに作ってもらったんですが、この業者さんとは
訳あって取引していないので、聞けない状況です。

よろしくお願いいたします。

A 回答 (2件)

No.1です。

補足ありがとうございます。

>ここがよく分からない所なのですが、EXEで起動する際に
>ショートカットを作成して、リンク先に
>「○○.EXE 1」のように後ろに"1"を付けると手動、
>「○○.EXE」にように何もつけないと自動となるようです。

これはプログラムに起動引数(パラメータ)を渡していることを
指しています。手動実行と自動実行の違いは、このパラメータが
あるかないかの違いだけとなります。

なので手動実行と自動実行と呼び方は違えど、実行ファイルを
実行することでアプリケーションが起動することには変わりなく、
パラメータの有無で、途中で処理分岐をしています。

この起動引数の違いだけでは、Oracleに影響を及ぼすものとは
思えません。プログラム自体に何らかのミスがある可能性が
かなり大きいと言えます。自動実行と呼ばれるぐらいですから
EXE実行と同時に処理が実行されて終了するのでしょう。
このときのOracleからの抽出条件などに問題がありそうです。

もしかすると手動実行は何らかのアプリケーション画面が
表示されるのではないですか?この場合は利用するユーザーが
画面から処理実行ボタンを押したりした時に、画面の入力情報
などから処理実行に必要なパラメータを準備しますね。
このとき質問者様の意図するデータの抽出が行われるのでしょう。

確認しなければならないのは、自動実行で処理を行う場合の
データ抽出条件などは仕様書に記載されているかどうかです。
プログラム内に直接条件が書かれているのであれば救えませんが、
設定ファイルや、特定のテーブルなどに自動実行の場合の
動作を設定できる仕様なのであれば、その設定を疑うべきです。

たとえば『○○の条件に合致するデータは抽出しない』といった
オプションが自動実行の場合にだけ有効になっている等、
漏れているのではなく、それを取得しない条件が設定されている
可能性もゼロではないからです。

仕様書や取扱説明書でその判断ができない場合は、
やはり製作者・製作した業者に問い合わせる必要が出てきますね。
    • good
    • 0
この回答へのお礼

ありがとうございました。
仕様書を作成した業者に確認した所、仕様書の設計ミスでした。
また機会がありましたらよろしくお願いいたします。

お礼日時:2009/02/18 16:47

まず、自動起動と手動起動について追記願います。


通常のクライアントアプリケーション(.exe)でしょうか?

自動起動とはどういった方法で起動させていますか?
取得したデータはアプリケーション画面で確認するものですか?
それともObject Browser等でテーブルを直接確認するものですか?

取得するデータは特定のテーブルを一括取得するものですか?
それとも条件に合致するデータのみを抽出するものですか?

併せてOracleのバージョンも宜しくお願いします。

この回答への補足

説明不足で申し訳ありません。

> 通常のクライアントアプリケーション(.exe)でしょうか?
そうです。

> 自動起動とはどういった方法で起動させていますか?
ここがよく分からない所なのですが、EXEで起動する際に
ショートカットを作成して、リンク先に
「○○.EXE 1」のように後ろに"1"を付けると手動、
「○○.EXE」にように何もつけないと自動となるようです。

> 取得したデータはアプリケーション画面で確認するものですか?
ACCESS2000に取り込まれます。
データ差異の確認はObject Browserで確認しました。

> 取得するデータは特定のテーブルを一括取得するものですか?
> それとも条件に合致するデータのみを抽出するものですか?

条件で合致したデータを抽出しています。

OracleのバージョンはOracle10g 2.0.3となっています。

よろしくお願い致します。

補足日時:2009/02/18 11:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!