mySql完全手册2011031401
【實踐】
MySql和C部分實踐
環境:
Vs2005+Xp+Sp3
MySql Server 5.0
庫文件和頭文件路徑分別:
D:\Program Files\MySQL\MySQL Server 5.0\lib\debug
D:\Program Files\MySQL\MySQL Server 5.0\include
實踐過程:
1、新建Windows32 Console程序
2、引用頭文件#include <mysql>
編譯,出現錯誤,找不到頭文件~
在Xp環境變量中添加路徑,再編譯,仍然找不到~
看來只有在vs2005的環境配置中處理,實際操作:
工具->選項->項目和解決方案->VC++目錄,這里有一個庫文件路徑和頭文件路徑,分別添加相應的路徑
繼續編譯,錯誤,mysql_com.h中找不到my_socket類型~
具體指向這句話:int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen,
??? ?????? unsigned int timeout);
網上查詢需要#include <winsock.h>在#include <mysql.h>前面,ok,添加了,細細想下,應該還有問題:沒有引用庫文件
隨后,在當前項目屬性中,找到:配置屬性->鏈接器->輸入->附加依賴項
錄入:D:\Program Files\MySQL\MySQL Server 5.0\lib\debug\mysqlclient.lib wsock32.lib
杯具,錯誤Lnk1104,找不到D:\program.obj~
其實最開始我直接拷貝的路徑,串"D:\Program Files\MySQL\MySQL Server 5.0\lib\debug\mysqlclient.lib
這個的錯誤也是上面那個,后面改成無引號的,還是這個錯~
linker高級命令中顯示如下:你會發現路徑錯誤(紅色部分)
/OUT:"d:\My Documents\Visual Studio 2005\Projects\LibMath\Debug\TestMysql.exe" /INCREMENTAL /NOLOGO /MANIFEST /MANIFESTFILE:"Debug\TestMysql.exe.intermediate.manifest" /DEBUG /PDB:"d:\My Documents\Visual Studio 2005\Projects\LibMath\debug\TestMysql.pdb" /SUBSYSTEM:CONSOLE /MACHINE:X86 /ERRORREPORT:PROMPT "D:\Program Files\MySQL\MySQL Server 5.0\lib\debug\mysqlclient.lib wsock32.lib? kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
最后查詢到,在引用庫需要""來鎖定完整路徑的庫,
最后在附加依賴項保存是這個串:"D:\Program Files\MySQL\MySQL Server 5.0\lib\debug\mysqlclient.lib" wsock32.lib
編譯,出現錯誤lnk2005,lnk2019,這個錯誤是運行庫問題,瀏覽下項目屬性,發現當前運行庫為MDd;那么我只能改成MTd
編譯,成功了~
F5運行,cmd窗口出現“Error in connection:null”字符
ok,檢查了,是帳號錯誤,本來是root,在這里用成sa了
修改成root,編譯運行,出現字符"Query executed successfully"
到這里基本上算運行了一個正常的實踐流程,至少在鏈接mySql server和簡單查詢上已經成功了~hoho
下面貼出h和cpp文件:
1 // stdafx.h : 標準系統包含文件的包含文件,2 ?// 或是經常使用但不常更改的
3 ?// 特定于項目的包含文件
4 ?//
5 ?
6 ?#pragma once
7
8
9 ?#define WIN32_LEAN_AND_MEAN // 從 Windows 頭中排除極少使用的資料
10 #include <stdio.h>
11 #include <tchar.h>
12
13 #include <winsock.h>//這個文件在mysql.h的前面哈
14
15 ?// TODO: 在此處引用程序需要的其他頭文件
16 ?#include <mysql.h> 1 // TestMysql.cpp : 定義控制臺應用程序的入口點。
2 //
3
4 #include "stdafx.h"
5
6
7
8 int _tmain(int argc, _TCHAR* argv[])
9 {
10 MYSQL mysql;
11 MYSQL_RES * result;
12
13 mysql_init(&mysql);
14
15 if (!(mysql_real_connect(&mysql ,"localhost" ,"root" ,"sa" ,"library" ,0 ,NULL ,0)))
16 {
17 fprintf(stderr, "Error in connection:%s\n");
18 return 0;
19 }
20
21 if (mysql_query(&mysql ,"Select * from tbmembers") != 0)
22 {
23 fprintf(stdout ,"Error in query\n");
24 }
25 else
26 {
27 fprintf(stdout ,"Query executed successfully\n");
28 }
29
30 mysql_close(&mysql);
31
32 return 0;
33 }
好,這個算結束了本次實踐過程的記錄
結論:
1、mysqlclient.lib運行庫是MTd,多線程靜態庫;對應Release版本就是MT
2、mysql.h頭文件還是依賴winsock.h,說明其開發的基礎還是在sock,屬于sock擴展應用
轉載于:https://www.cnblogs.com/GoGoagg/archive/2011/03/14/1983836.html
總結
以上是生活随笔為你收集整理的mySql完全手册2011031401的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家常茄子的家常做法?
- 下一篇: JS获取按键码