- ベストアンサー
構造体の中身をデータベースにコピーする方法がわかりません。
タイトルにも書いてありますが、 構造体の中身をmysqlで作成したデータベースに 書き込んでいく方法がわからなく、困っております。 PHPやODBCはまったく使い方がわからないので、 C言語のみでアクセスする方法をググってみたところ、 c apiというものがあることはわかりました。 しかし、capiを使ったサンプル自体が極端に少なく、 サンプルの内容もデータベースにアクセスして、テーブル内の 内容を表示するというものがほとんどでした。 変数の値をデータベースに書き込む、というだけのサンプルだけでもいいので、どなたか教えてくださればありがたいです。 もしくは、構造体の中身はcsvファイルとしてすべて書き出しているんですが、このcsvファイルをmysqlで直接読み込んでいったほうが早いのでしょうか? よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
この辺りもいいと思います。 http://www13.plala.or.jp/kmaeda/winc/winc.htm#DATABASE の「Data Base のテストプログラム」あたりです。
その他の回答 (3)
- takuro-san
- ベストアンサー率53% (34/63)
VS2005の環境では以下で設定できました。たぶんこの設定でいいと思います。 (1)プロジェクトのプロパティを開く。 (2)「構成プロパティ」-「C/C++」-「全般」内の「追加のインクルードディレクトリ」に MySQL.hが保存されているフォルダを指定する。 エラーが発生した際には、エラーを選択し、「F1」キーを押すと、一応対処方法が出てくると思います。 たまに役に立たないときがありますが。。。
お礼
回答ありがとうございます。 さっそく教えていただいた方法と、私が調べた結果を試してみました。 その結果、両方の設定を同時にすることでインクルードは読み込んでくれるようになりました。 以下にその設定箇所を書いておきます。 開発環境: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、くだらない上に脱線した私の質問に親切にお答えしていただき、ありがとうございます!
- takuro-san
- ベストアンサー率53% (34/63)
以下にたくさんサンプルがあります。 この中の「Adding records to table」の部分が参考になるのではないでしょうか? http://www.geocities.com/jahan.geo/mysql_c_by_example.html#InitializingMySQLAPI
お礼
ありがとうございます。 リファレンス片手に少しずつ読み進めていきます。 しかし……0から始めたり、ネコでもわかったりするc言語で扱うmysql講座、みたいなサイトってないんですね…… 私の検索の仕方が悪いのか、二日くらい探してますが一つも見つかりません。 あれば少なくとも私は泣いて喜ぶんですが…… もしこのサイトがわかりやすくて使える、というお勧めがありましたら ぜひ教えていただけますでしょうか。お願いします。
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 んと…構造体のレコード毎に ・insert文を作成して ・DBにクエリを投げる だけなので。特に難しい事も無いと思うのですが…どのあたりで困ってらっしゃいますでしょうか?
補足
お恥ずかしい限りなのですが、その特に難しくない部分で悩んでます。 mysql単体でのデータベースの作成、テーブル作成追加、削除、更新などはできるのですが、それをどうやって他のアプリケーションから扱うかで行き詰りました。 参考書などに書かれているc言語の標準関数以外のものをまったく扱ったことがないもので。 ですので、何を最初にインクルードするか、どうやってmysqlを呼び出すか、そして変数内のデータをデータベースに書き込んでいくか。 この流れの簡単なサンプル(長かったり、複雑すぎるとまだ読めないです……)などいただければ、ありがたいです。
お礼
ありがとうございます!!! 何で私が検索かけても見つからなかったのだろう……orz この検索能力も少しずつ上げていきたいものです。 このサイトがあれば、プログラミングに入る前の準備は大丈夫だと思います。ひとつひとつ説明もついてますし。文句無しです。 ありがとうございました!!
補足
教えていただいたアドレス先の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だから……という理由じゃないことを切に願います。