- ベストアンサー
データベースを用いたプログラム
このプログラムでは、 #include<stdio.h> int main() { int a; printf("数字を入力してください。\n"); scanf("%d",&a); return 0; } ある数字を入力すれば、そこで終了になってしまいます。 ここで聞きたいことは、例えば1~100くらいまでの数字をデータベースとしてエクセルに保管し、このプログラムのように、ある数字を入力してそれをデータベースと照らし合わせ、数字と一致すれば次の処理へ移り、一致しなかったらエラー表示が出るようなプログラムを作りたいのですが、ここからどのように進めていけばできますか?ご教授お願いします。 もちろんそのプログラム自体は、データベースを使用しなくてもif文等で実行は可能ですが、相手に伝わりやすいようにするために、簡易なプログラムを用いて表現させてもらいました。実際はかなり膨大になります。 OSはWin XPでコンパイラはボーランドのフリーコンパイラ、もしくは、Visual Studio.NET2003をしようしています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
以前に書かれていたプログラム http://okwave.jp/kotaeru.php3?q=1727686 でやってるみたいにして select count(*) from ~ where <フィールドが指定した数字と一致するか>; とかSQLで検索かければ 一致するかどうかは調べられます。
その他の回答 (4)
- Te-Sho
- ベストアンサー率52% (247/472)
ExcelファイルをC++でデータベースとして使用するのでしたらODBC経由で接続すればいいですね。 ODBCデータソースでExcelシートを指定したデータソースを作成し、そのデータソースに対してSQLを投げるようにすれば良いです。 プログラムとしてはレコードを全件ナメると言うより、select文で該当項目に対しての検索を行い返ってきた件数が0ならエラー処理に、正常なら次の処理に、と書くだけですね。 例えばですが #include<stdio.h> int main() { int a; printf("数字を入力してください。\n"); データベース接続関数 データベースオープン SQL作成(a); SQL実行; 件数=レコードセットから参照 if (件数=0) { 次処理 } else { エラー処理 } データベースクローズ } こんな形になりますね。(ムチャクチャ抜粋してます。) データベースを使用するに辺りSQLの知識は必須です。 ODBCを使用したデータベースの使用方法はググってください。 (必要なヘッダ等) 以下のサンプルはC++ .netでストアドを使用した方法です。ちょっと複雑ですのでいろいろなサンプルを検索してみてください。
お礼
SQLですかぁ… 徐々に習得していきたいと思います。 どうもありがとうございまいした。
- SpiralGalaxy
- ベストアンサー率39% (649/1653)
>このプログラムでは、 どのプログラム? と探してしまいました(^^; 何がやりたいのかよくわかりません。100個程度のデータにDB使わないとならない理由というのがよくわかりませんが…。 >データベースとしてエクセルに保管し、 そもそも何故エクセルなんでしょう? エクセルでやるのならC++なんて使う必要なくて、エクセルだけで完結させた方が楽でしょう。そもそも、C++プログラムから簡単に操作できるようなインターフェース持ってないし。 エクセルでやらなくていいということなら、 Visual Studio.NET2003とアクセスMDB使えば超楽勝です。
お礼
アクセスMDB?? 初耳ですが、検索しながら習得していきたいと思います。ありがとうおございました。
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
「エクセルに保管し、保管した値を参照する」というのが必須条件であれば、VBAを使うのが早道です。 「エクセルに保管し、保管した値を参照する」というのが必須条件で、なおかつC++を使わなければならないのであれば、オートメーションというものを使用することになります。 他のアプリケーションとの連携を取ることになるのですが、ある意味、茨の道です。 ひとまず、Visual Studio .NET 2003のサンプルの中で「オートメーション クライアント」に関するもの(CALCDRIV, IPDRIVE)と、それと対になるオートメーション サーバ(MFCCALC, INPROC)について調べてみることをお勧めします。
お礼
なりほど、あまり聞いたことのない用語がそろっていますが、検索しながら、習得していきたいと思います。どうもありがとうございました。
- HAL007
- ベストアンサー率29% (1751/5869)
100個程度のもなら配列を使うのが一般的です。 DB化する場合は、変数として常に他のアプリケーションなどから リアルタイムで変更が加わる様な場合に検討するものです。 固定値なら配列でスキャンさせれば済みますしプログラミングの勉強なら 初歩のテクニックです。
お礼
分かりました。 どうもありがとうございました。
お礼
なるほど、ちょっとやってみます。 どうもありがとうございました。