プロが教える店舗&オフィスのセキュリティ対策術

 タイトルにも書いてありますが、
構造体の中身をmysqlで作成したデータベースに
書き込んでいく方法がわからなく、困っております。
 PHPやODBCはまったく使い方がわからないので、
C言語のみでアクセスする方法をググってみたところ、
c apiというものがあることはわかりました。
しかし、capiを使ったサンプル自体が極端に少なく、
サンプルの内容もデータベースにアクセスして、テーブル内の
内容を表示するというものがほとんどでした。

 変数の値をデータベースに書き込む、というだけのサンプルだけでもいいので、どなたか教えてくださればありがたいです。
 もしくは、構造体の中身はcsvファイルとしてすべて書き出しているんですが、このcsvファイルをmysqlで直接読み込んでいったほうが早いのでしょうか?
 よろしくお願いいたします。
 

A 回答 (4件)

がると申します。


んと…構造体のレコード毎に
・insert文を作成して
・DBにクエリを投げる
だけなので。特に難しい事も無いと思うのですが…どのあたりで困ってらっしゃいますでしょうか?

この回答への補足

 お恥ずかしい限りなのですが、その特に難しくない部分で悩んでます。
mysql単体でのデータベースの作成、テーブル作成追加、削除、更新などはできるのですが、それをどうやって他のアプリケーションから扱うかで行き詰りました。
 参考書などに書かれているc言語の標準関数以外のものをまったく扱ったことがないもので。
 
 ですので、何を最初にインクルードするか、どうやってmysqlを呼び出すか、そして変数内のデータをデータベースに書き込んでいくか。
 
 この流れの簡単なサンプル(長かったり、複雑すぎるとまだ読めないです……)などいただければ、ありがたいです。

補足日時:2008/06/24 10:57
    • good
    • 0

以下にたくさんサンプルがあります。


この中の「Adding records to table」の部分が参考になるのではないでしょうか?

http://www.geocities.com/jahan.geo/mysql_c_by_ex …
    • good
    • 0
この回答へのお礼

 ありがとうございます。
リファレンス片手に少しずつ読み進めていきます。

 しかし……0から始めたり、ネコでもわかったりするc言語で扱うmysql講座、みたいなサイトってないんですね……
 私の検索の仕方が悪いのか、二日くらい探してますが一つも見つかりません。
 あれば少なくとも私は泣いて喜ぶんですが……
もしこのサイトがわかりやすくて使える、というお勧めがありましたら
ぜひ教えていただけますでしょうか。お願いします。

お礼日時:2008/06/24 11:46

この辺りもいいと思います。



http://www13.plala.or.jp/kmaeda/winc/winc.htm#DA …
の「Data Base のテストプログラム」あたりです。

この回答への補足

 教えていただいたアドレス先のmysqlの基本操作を終え、
いざVC++からアクセスしようとしたのですが、
サンプルプログラムを実行するとmysql.hのインクルードで引っかかっています。
error C1083: include ファイルを開けません。'mysql.h': No such file or directory
と出てきました。

おそらく原因はコンパイルの環境設定だと目星をつけ、またググったり
教えてgoo内を調べてみて、

MySQLがインストールされたディレクトリを
-I と -L で指定してやるだけです。
-I がincludeファイルのあるところ、
-L がライブラリの名前です。標準以外のところに置かれていればフルパスで。

という答えが、同じ問題にぶつかった方の回答でありました。
その方はこの答えで解決したようですが、私はなんのことやらわかりません。この方はgccを使っていたようです。
見よう見まねでVCのオプションのVC++ディレクトリのインクルードファイルのところに、フルパスでmysqlをインストールしたところを指定してみましたが、意味がありませんでした。
それとも、そもそもの設定の箇所が間違っているのでしょうか?
私の環境は
vc++2008ExpressEdition
mysqlServer5.0
です。

apacheとPHPの設定をした時のように、OSがvistaだから……という理由じゃないことを切に願います。

補足日時:2008/06/24 17:32
    • good
    • 0
この回答へのお礼

ありがとうございます!!! 
何で私が検索かけても見つからなかったのだろう……orz
この検索能力も少しずつ上げていきたいものです。

 このサイトがあれば、プログラミングに入る前の準備は大丈夫だと思います。ひとつひとつ説明もついてますし。文句無しです。

ありがとうございました!!

お礼日時:2008/06/24 14:10

VS2005の環境では以下で設定できました。

たぶんこの設定でいいと思います。

(1)プロジェクトのプロパティを開く。
(2)「構成プロパティ」-「C/C++」-「全般」内の「追加のインクルードディレクトリ」に
MySQL.hが保存されているフォルダを指定する。

エラーが発生した際には、エラーを選択し、「F1」キーを押すと、一応対処方法が出てくると思います。
たまに役に立たないときがありますが。。。
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。
さっそく教えていただいた方法と、私が調べた結果を試してみました。
その結果、両方の設定を同時にすることでインクルードは読み込んでくれるようになりました。
 以下にその設定箇所を書いておきます。
開発環境:OSはvista、VC++2008、mysqlserver5.0です。
(1)mysqlのセットアップの際、Developer ComponentsのC IndudeFiles/Lib Filesを忘れずインストールしておく。
私のようにネットなどを使い参考にしてインストールすると、サイト によってはVC++を使わない方向でインストールしている場合がありま す。その場合includeフォルダがインストールされません。
まさに私がそうでした。

(2)コントロールパネル→システム→システムの詳細設定→詳細設定タブ内の環境変数→PathにC:\Program Files\MySQL\MySQL Server 5.0\binを追加する。

(3)VC++2008を立ち上げて、ツール→オプション→VC++ディレクトリを選択し、ディレクトリを表示するプロジェクト内のインクルードファイルを選択。そしてC:\Program Files\MySQL\MySQL Server 5.0\includeを追加する。

(4)VC++2008プロジェクトのプロパティを選択。構成プロパティ内のリンカ→入力→追加依存ファイルに
wsock32.lib
"C:\Program Files\MySQL\MySQL Server 5.0\lib\debug\libmysql.lib"
の二つを追加します。フルパスは""でくくらないと認識しません。

この作業を終え、泣きそうになりながら適当なサンプルを実行したら、
一応は走ってくれました。

これはあくまで私の設定した方法です。余計なこともしているかもしれません。
おそらく、各アプリケーションのVerによって設定方法は全く違います。
少数だとは思いますが、同じ問題で悩んでいる人がいたら参考にしてもらえれば幸いです。

ようやく設定が終わりました。そもそもの質問である、変数内のデータをデータベースに書き込んでいくという作業にようやく取り掛かれます。
takuro-san、くだらない上に脱線した私の質問に親切にお答えしていただき、ありがとうございます!

お礼日時:2008/06/25 11:01

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