• 締切済み

MYSQL

C・C++のソースからMYSQLの接続、テーブル・クエリの管理、処理。レコードデータの取得または利用といったことがしてみたいのです。 C言語のソースにMyglobal.hとmysql.hをincludeして、 #include<Myglobal.h> #include<mysql.h> と記述するのでしょうか? MYSQLのコマンドを使用できるように、libmysql.libや mysqlclient.libを設定するにはどうするのでしょうか? MYSQLリファレンスをみても分からない状況です。 環境はBorland C++ 又はWIDE Studioです。 OSはWINDOWSです。 Visual C++からしか、動作させることができないのでしょうか? C++等のCのソース上で動かしてみたいのです。 分かる方、是非詳しく使用例またはサンプルソースを 教えてください。 よろしくお願いします。

みんなの回答

  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

サンプルならそれこそmysqlに付属のサンプルが一番でしょう。結構わかりやすく書かれています。 最低限 #include<mysql.h> だけあればコンパイルは通ります。 あとはリンク時にlibmysql.libをリンクするだけです。 私はBorland C++ Builderからでしたが、複数ThreadからSQL文を投げて値を取得できていますよ。 どちらかというと、プログラミング>C&C++カテゴリのネタですね。

sea_clear
質問者

補足

回答ありがとうございます。 すいません、Borland C++じゃなく、BolandBcc55コンパイラです。 MYSQLのLibmysql.libの設定の仕方がわかりません。 bcc55コンパイラ設定のcfgファイルにlibMysql.libを 追加設定必要ですか? 全く分からないでわかれば教えてください。 BorlandbccコンパイラでMYSQLとリンク?して、 printfなどでデータベースの値を表示するの可能? 設定の仕方とソースの書き方もあっているのか 分かりません。 Widows上でBorlandbcc55コンパイラでMYSQLを利用したいのです。ローカルで。 やはりAPACHEなどを利用し、CのCGIでしかMYSQLを利用することしかできないのでしょうか? CのCGIで利用するには? WINDOWS上で利用可能? WINDOWSとWINDOWS仕様のAPACHEの環境で? mysql_init mysql_real_connect msyql_fetch_row mysql_select_db mysql_query のコーディングがわかりにくいです。 これらの関数はBorlandbcc55コンパイラで利用可能? MYSQLの関数? #includeだけの設定だけで、動くのでしょうか? C/C++等でMYSQLの接続・切断・管理・MYSQLのレコードの値の取得・値の表示の仕方の基礎を教えてください。 これなら動きますよというソースを教えて頂けたら有難いです。 MYSQL付属のSAMPLEソースが見つかりませんでした。 エラーがでますが、自分で調べて考えたソースです。 [1] #include <windows.h> #include <stdio.h> #include "c:\mysql\include\mysql.h" int main () { MYSQL *myData; char *HostName; char *Passwd; char *LoginName; int port; HostName =""; //MYSQLへのアドレス LoginName =""; //MYSQLへの続ユーザ名 Passwd =""; //MYSQLへの接続パスワード //ユーザごと port =0; //ポート if((myData = mysql_init((MYSQL*)0)) && mysql_real_connect( myData,HostName,LoginName,Passwd,NULL,port,NULL,0)){ // MYSQL構造体の初期化とサーバの接続が出来た場合 printf("初期化に成功しました"); }else{ // MYSQL構造体の初期化かサーバの接続が // 出来なかった場合 printf("コネクト失敗"); mysql_close(myData); return(-1); } return 0; } [2] #include "c:\mysql\include\mysql.h" #include <stdio.h> int main() { int i,rowcount; MYSQL mysql; MYSQL *mysqldb = NULL; MYSQL_FIELD *resultfield; MYSQL_RES *resultset; MYSQL_ROW resultrow; mysqldb = mysql_connect(&mysql, "MYSQLのアドレス","ユーザ名","パスワード"); mysql_select_db(mysqldb,"db"); mysql_query( mysqldb,"select * from shouhinm"); resultset = mysql_store_result(mysqldb); rowcount = mysql_num_rows(resultset); for (i=0;i < rowcount;i++){ resultrow = msyql_fetch_row(resultset); printf("%d %s %s<br>\n",i+1,resultrow[0],resultrow[1]); } return 0; } 長く書いてしまいましたがよろしくお願いします。

関連するQ&A

  • Borlandbcc55とMYSQLのコンパイル時にlibmysql.libやmysqlclient.libのリンクについて

    Windows上で、borlandbcc55、mysqlを利用しいてます。 Windows上のborlandbcc55、mysqlで C/C++のソースでMYSQLの接続・切断・管理・MYSQLのレコードの値の取得・値の表示の仕方の基礎を教えてください。 これなら動きますよというソースを教えて頂けたら有難いです。 Borlandbcc55とmysqlの設定 my_global.hとmysql.hをincludeして、 コンパイル時にlibmysql.libやmysqlclient.libをリンクしてやればできそうなのですが includeは Cのソースで #include "c:\mysql\include\mysql.h" #include "c:\mysql\include\my_global.h" と記述するだけでOKなのでしょうか? MYSQLのLibmysql.libの設定の仕方及びコンパイル時にlibmysql.libやmysqlclient.libを リンクする方法がわかりません。 bcc55コンパイラ設定のcfgファイルにlibMysql.libやmysqlclient.libを 追加設定必要ですか? 必要ならどう記述すればいいのでしょうか? また違う仕方なのでしょうか? 全く理解できていません。 そのリファレンスをみてもわかりません。 1 coff2omf c:\mysql\lib\opt\libmysql.lib c:\borland\bcc55\lib\libmysql.lib 2 ilink32 obj-Dateien, exe-Dateiname, map-Datei, Libraries 3 -> ilink32 c0x32.obj testmysql.obj , testmysql.exe , , import32.lib cw32.lib libmysql.lib これらの設定の仕方もわかりません。 設定に必要なのかどうかも理解できていません。 よろしくお願いします。

  • borland c++ によるMySQL へのアクセス

    borland c++でMySQLデータベースへ接続したいのですが、 外部シンボル 'mysql_real_connect' が未解決 外部シンボル 'mysql_init' が未解決 外部シンボル 'mysql_close' が未解決 というエラーが出てしまいます。 ******** 現状 *********** (1) インクルードしているヘッダファイルは、   <my_global.h>   <mysql.h>   <my_sys.h>   です。 (2) ソースコードは、  conn = mysql_init(NULL); if(mysql_real_connect(conn,opt_host_name,opt_user_name,opt_password,opt_db_name,opt_port_num,opt_socket_name,opt_flags) == NULL) { fprintf(stderr,"mysql_real_connect() failed\n"); mysql_close(conn); exit(1); } mysql_close(conn); exit(0); といった感じです。 (3) implib を用いて、   libmySQL.lib から libmySQL.dll へ変換し、   実行したいソースと同じフォルダに置き、   リンクしています。 どなたか、ご回答よろしくお願いいたします。                      

    • ベストアンサー
    • MySQL
  • MySQL接続を行うソースのコンパイルが出来ず苦しんでます

    皆さん、こんにちは。 C++でソースを書いています。 内容としてはMySQLに接続し、 DBから得たデータを表示するソースなので、 以下のように、 「mysql.h」をヘッダでインクルードしているわけなのですが、 --------------------- #include <mysql.h> --------------------- 作ったソースをmakeしようとすると、 次のように、 DB接続に必要と思いソース内で使用した、 以下の変数について、undefined referenceで怒られてしまいます。 ------------------------------------------------ /home/test/dbtest.cpp:178: undefined reference to `mysql_init' /home/test/dbtest.cpp:181: undefined reference to `mysql_real_connect' /home/test/dbtest.cpp:182: undefined reference to `mysql_error' /home/test/dbtest.cpp:188: undefined reference to `mysql_query' /home/test/dbtest.cpp:189: undefined reference to `mysql_error' /home/test/dbtest.cpp:193: undefined reference to `mysql_use_result' /home/test/dbtest.cpp:197: undefined reference to `mysql_free_result' /home/test/dbtest.cpp:198: undefined reference to `mysql_close' ------------------------------------------------ そこで、下記URLの内容にあるエラー内容と 完全に同じでしたので、 「libmysqlclient.so」へのパスを通そうと思いました。 http://dev.mysql.com/doc/refman/4.1/ja/link-errors.html ということで、 findで「libmysqlclient.so」のパスを調べ、 makeの際に、-Iでディレクトリを指定しなおしましたが、 やはり、同じエラーが表示されます。 ------------------------------------------------ # find / -name "libmysqlclient.so" -print /usr/lib/mysql/libmysqlclient.so # make -I /usr/lib/mysql/libmysqlclient.so ------------------------------------------------ どうしていいか分からず困ってしまいました。 初心者で初歩的な部分かもしれませんが、 何かアドバイスいただけると とてもありがたいです。 どうぞ宜しくお願い致します。 OSはFedora9です。 viでソースを編集しながら、 makeをしたりしています。

  • VC++のx64でMYSQLの接続について

    初めて質問させて頂きます。 VC++2010ExpressでMYSQLに接続するx64コンソールアプリを作成しているのですが、「アプリケーションエラー」が発生し、先に進めなくて困っております。 <<サンプルコード>> #include "stdafx.h" #include "WinSock.h" // Windowsのソケット通信 #include "mysql.h" // MySQLライブラリのヘッダ int _tmain(int argc, _TCHAR* argv[]) { MYSQL * con; con = mysql_init(NULL); return 0; } <<現象>> サンプルコードを実行すると以下のメッセージが表示されます。 ・アプリケーション エラー ・アプリケーションを正しく起動できませんでした(0xc000007b)。[OK]をクリックしてアプリケーションを閉じで下さい。 <<環境>> ・VC++2010ExpressにMicrosoft Windows SDK v7.1をいれて64ビットアプリのコンパイルが可能にしてあります。簡単なプログラムを作って、タスクマネージャーで確認した所、64ビットで実行されているようでした。 ・OSはWindows Home Server 2011です ・コネクタはmysql-connector-c-6.0.2-winx64.msiをインストールしました。 <<VC++のプロパティなど>> ・インクルードディレクトリ:C:\Program Files\MySQL\MySQL Connector C 6.0.2\include ・ライブラリディレクトリ:C:\Program Files\MySQL\MySQL Connector C 6.0.2\lib\opt ・リンカー>>追加の依存ファイル:libmysql.lib ・プラットフォームツールセット:Windows7.1SDK  32ビット用のコネクタで同様の設定を行うと、正常に動作しSelect文で結果も取得できました。 原因がお分かりの方がおられましたら、ご教授お願い致します。

  • 「mysqlclient」の事が分からないでいます。

    「mysqlclient」の事が分からないでいます。 Cからmysql接続をするプログラムを作っていたのですが、 makefileに「-lmysqlclient」を入れておけよ! と先輩に言われたので、 そのとおり、 それをLDFLAGSに追加しておいたら、 確かに、コンパイルが出来て、 mysql接続も成功していたのですが、 どうも自分で分からない事が有ります。 「mysql.h」をCプログラムの先頭でincludeしたり、 「mysql.h」ファイルの位置を MakefileのLDFLAGSに書いて、 mysqlの関数を使うための下地を作っておくなら 何となく理解出来るのですが、 どうして、 「-lmysqlclient」をすべきなのでしょうか。 「mysqlclient」を探しても、 特にそんなファイルなども見つかりませんでしたしが、 確かに、この「-lmysqlclient」をなくしてしまうと、 コンパイルが上手く通らないです。 「mysqlclient」とは何なのでしょうか。 どうして、mysqlのAPIを使うのに、 mysql.hだけではなく、「mysqlclient」も必要なのでしょうか? Cを勉強しだしたばかりの弱小者ですが、 アドバイスをいただいた先輩も出張に行ってしまい、 聞ける人もいないため、 アドバイスいただけるとありがたいです。 宜しくお願い致します。

  • WiiYourself!をコンパイルできない

    WiiYourselfをVisualStadio2008(visual C++)でDemoフォルダのソースをコンパイルしようとしたのですがコンパイルエラーが100個以上出て失敗してしまいました(ソースは入手したときのままです)。エラーは以下のとおりです。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2065: '_In_' : 定義されていない識別子です。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2144: 構文エラー : '_EXCEPTION_RECORD' は ')' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2448: '_except_handler' : 関数の定義が間違っています。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(61) : error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(62) : error C2144: 構文エラー : '_CONTEXT' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(63) : error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(64) : error C2059: 構文エラー : ')' 1>c:\winddk\7600.16385.0\inc\api\windef.h(49) : error C2143: 構文エラー : ';' が '*' の前にありません。    ........ 開発環境は以下の通りです Windows vista WDM (インクルード(inc/api) ライブラリ(lib/wxp/i386)をvisual C++に設定している) WiiYourself1.01a とWiiYourself!_1.14b両方試しましたが同じ結果でした 原因をご存知の方がいらっしゃたらどうか書き込みお願いします。 よろしくお願いします。

  • MYSQL接続 Imports エラー

    sea_clear_skyです。 質問させて、頂きます。 環境 WindowsXP SP3 Visual Web Developer 2008 Express Edition 下記サイトのサンプルで、mysqlに接続使用としますが、 Imports MySql.Data.MySqlClientが認識されず、 コンパイルが通りません。 Connector/Net5.2はインストールしてあります。 また、参照の追加でConnector/Net5.2も追加してあります。 MySql.Data.MySqlClient Imports MySql.Data.MySqlClient MySql.Data.MySqlClient ASP.NET 等でGOOGLE等で調べましたが、参考HPを見つけられず 困っています。 ご教授お願いします。 参考URL http://vapour.s22.xrea.com/dotnetdojo/index.php?.NET%C6%BB%BE%EC#gc615f86 参考URLの「MySQLとの接続」の部分の MySQL.aspx MySQL.aspx.vb の部分にサンプルのコードが載っています。 よろしくお願いします。

  • MySQLライセンス

    現在、顧客様がフリーで配布する システムの構築の依頼を受けております。 そこで、MySQLの使用を考えているのですが 他のホームページを見たところ 商用で使用する場合は、ライセンスを購入しないと いけないと書いてあるのですが 自社のトップが 「libmysql.dllを使用せずにODBC経由での接続ならば、問題はない」 と言われているのですが 信用できません。 MYSQLのライセンスに詳しい方教えていただけませんか? ちなみに開発環境は、 OS:WINDOWS XP pro DB:MySQL 4.0 言語:C# Visual Studio.net 2003

  • OpenGLの設定方法

    Visual C++ 2005 Express Editionを使ってて、OpenGLを使いたいのですが、環境設定がうまくできません。設定の仕方をネットで色々検索したのですが、VisualStudioやBorlandのやり方しかのってなく。glut32やopengl32などをlibやincludeファイルに入れるというのは分かったのですが、2005にはlib includeのフォルダがみつからず、どう設定していいか分かりません。2005だとOpenGLは使えないのでしょうか?

  • コンパイル時のエラーについて>エラー E2209 警告 W8065?

    以前にも似たような質問がでていましたが・・・ 初心者なのですが下記のようにエラーによりコンパイル出来ません。 どなたか原因のわかる方いましたらいお教え下さい。 宜しくお願いします。  C:\source>bcc32 sample1.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland sample1.c: エラー E2209 sample1.c 1: インクルードファイル 'stdio.h' をオープンできない 警告 W8065 sample1.c 4: プロトタイプ宣言のない関数 'printf' の呼び出し(関数 main) *** 1 errors in compile *** もちろんbinディレクトリに bcc32.cfg【-I"c:\Borland\Bcc55\Include" -L"c:\Borland\Bcc55\Lib"】 と ilink32.cfg【-L"c:\Borland\Bcc55\lib"】 は入れてあります。 なんでできないんでしょかTT