當前位置:首頁 » 操作系統 » c連接資料庫操作

c連接資料庫操作

發布時間: 2022-07-12 17:01:37

c語言怎麼連接mysql資料庫

如鵬網上有詳細的視頻教程,楊中科的C語言也能幹大事,裡面講得很清楚。要是在這里講需要寫很多東西,累手,還沒有視頻直觀

❷ 用C語言如何對MySQL資料庫進行操作

里的大部分代碼參考了MySQL發行包裡面的.c源文件,大家也可以去裡面找找相關的代碼,下面這段代碼實現了連接到本地MySQL伺服器上9tmd_bbs_utf8資料庫,從數據表tbb_user中根據輸入的userid取得該用戶的用戶名並列印輸出到終端。
if defined(_WIN32) || defined(_WIN64)為了支持windows平台上的編譯
#include <windows.h> #endif #include <stdio.h> #include <stdlib.h> #include "mysql.h"

我的機器上該文件在/usr/local/include/mysql下
定義MySQL資料庫操作的宏,也可以不定義留著後面直接寫進代碼
define SELECT_QUERY "select username from tbb_user where userid = %d" int main(int argc, char **argv)char **argv 相當於 char *argv[] {

MYSQL mysql,*sock;定義資料庫連接的句柄,它被用於幾乎所有的MySQL函數
MYSQL_RES *res;查詢結果集,結構類型
MYSQL_FIELD *fd ;包含欄位信息的結構
MYSQL_ROW row ;存放一行查詢結果的字元串數組
char qbuf[160];存放查詢sql語句字元串
if (argc != 2) { //檢查輸入參數 fprintf(stderr,"usage : mysql_select <userid>\n\n"); exit(1); } mysql_init(&mysql); if (!(sock = mysql_real_connect(&mysql,"localhost","dbuser","dbpwd","9tmd_bbs_utf8",0,NULL,0))) { fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); perror(""); exit(1); } sprintf(qbuf,SELECT_QUERY,atoi(argv[1])); if(mysql_query(sock,qbuf)) { fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); exit(1); } if (!(res=mysql_store_result(sock))) { fprintf(stderr,"Couldn't get result from %s\n", mysql_error(sock)); exit(1); } printf("number of fields returned: %d\n",mysql_num_fields(res)); while (row = mysql_fetch_row(res)) { printf("Ther userid #%d 's username is: %s\n", atoi(argv[1]),(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0])) ; puts( "query ok !\n" ) ; } mysql_free_result(res); mysql_close(sock); exit(0); return 0;

為了兼容大部分的編譯器加入此行
}
編譯的時候,使用下面的命令
gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 後面兩個選項可選,根據您的環境情況運行的時候,執行下面的命令
./mysql_select 1
將返回如下結果:
number of fields returned: 1 Ther userid #1 's username is: Michael query ok !

上面的代碼我想大部分都能看明白,不明白的可以參考一下MySQL提供的有關C語言API部分文檔,各個函數都有詳細說明,有時間我整理一份常用的API說明出來。

❸ 如何用C語言連接MYSQL資料庫

1、配置ODBC數據源。
2、使用SQL函數進行連接。
對於1、配置數據源,配置完以後就可以編程操作資料庫了。
對於2、使用SQL函數進行連接,參考代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
void
main()
{
HENV
henv;
//環境句柄
HDBC
hdbc;
//數據源句柄
HSTMT
hstmt;
//執行語句句柄
unsigned
char
datasource[]="數據源名稱";
//即源中設置的源名稱
unsigned
char
user[]=
"用戶名";
//資料庫的帳戶名
unsigned
char
pwd[]=
"密碼";
//資料庫的密碼
unsigned
char
search[]="select
xm
from
stu
where
xh=0";
SQLRETURN
retcode;
//記錄各SQL函數的返回情況
//
分配環境句柄
retcode=
SQLAllocEnv(&henv);
//
等介於
SQLAllocHandle(SQL_HANDLE_ENV,
SQL_NULL
,
&henv);
//
設置ODBC環境版本號為3.0
retcode=
SQLSetEnvAttr(henv,
SQL_ATTR_ODBC_VERSION,
(void*)SQL_OV_ODBC3,
0);
//
分配連接句柄
retcode=
SQLAllocConnect(henv,&hdbc);
//
等介於
SQLAllocHandle(SQL_HANDLE_DBC,
henv,
&hdbc);
//設置連接屬性,登錄超時為*rgbValue秒(可以沒有)
//
SQLSetConnectAttr(hdbc,
SQL_LOGIN_TIMEOUT,
(SQLPOINTER)(rgbValue),
0);
//直接連接數據源
//
如果是windows身份驗證,第二、三參數可以是

❹ C++或C程序如何與資料庫建立連接

一般要看使用的資料庫。如果
操作
sql
server
需要用到
ado
驅動,這種驅動使用mfc做的包裝類比較多一些,在控制台直接編寫代碼可能稍顯繁瑣。
如果操作mysql,在安裝mysql的時候,有相應的include頭文件和庫文件,可以在自己的ide開發環境中進行設置。

❺ c語言如何和資料庫連接

C函數庫沒有相應的資料庫連接介面函數。
只能夠嘗試用二進制或文本模式讀寫文件,來模擬相應的資料庫操作等。
可以嘗試下C++庫類,裡面有資料庫連接的介面

❻ c與資料庫連接的詳細步驟

C#連接資料庫有以下幾個步驟:
1:使用配置的資料庫連接串,創建資料庫連接 Connection 對象
2:構建操作的sql語句
3:定義command對象
4:打開數據連接
5:執行命令
舉一個例子,刪除操作
public class StudentService
{
//從配置文件中讀取資料庫連接字元串
private readonly static string connString = ConfigurationManager.ConnectionStrings["accpConnectionString"].ToString();
private readonly static string dboOwner = ConfigurationManager.ConnectionStrings["DataBaseOwner"].ToString();
AdoNetModels.Student model = new Student();

#region 刪除數據1
public int DeleteStudent(int stuID)
{
int result = 0;
// 資料庫連接 Connection 對象
SqlConnection connection = new SqlConnection(connString);
// 構建刪除的sql語句
string sql = string.Format("Delete From Student Where stuID={0}", stuID);
// 定義command對象
SqlCommand command = new SqlCommand(sql, connection);

try
{
connection.Open();
result = command.ExecuteNonQuery(); // 執行命令
}
catch (Exception ex)
{

Console.WriteLine(ex.Message);
}
finally
{
connection.Close();
}
return result;
}
#endregion

❼ 如何進行C#連接Access資料庫的細節操作

許多學者總會面對於資料庫的知識,以下的例子講述到Access資料庫說明,用C#的DataSet類訪問資料庫的一些操作方法。


操作涉及的主要C#類有:
DataSet:對應資料庫表的一個集合,實際上是資料庫表在內存中的一個緩存
DataTable:對應資料庫表,是資料庫錶行的集合
DataRow:對應資料庫錶行
OleDbConnection:建立資料庫連接
OleDbDataAdapter:由資料庫生成DataSet,並負責DataSet與資料庫的同步
OleDbCommandBuilder:生成更新資料庫所需的指令www.kmxxfk.com

DataSet、DataTable、DataRow用於數據在緩存中的操作,這上面的操作只有更新到資料庫中,修改結果才會被永久保存。OleDbConnection 是用OLEDB方法連接資料庫所必需的。OleDbDataAdapter和OleDbCommandBuilder用來生成DataSet,完成資料庫更新。與OleDbDataAdapter和OleDbCommandBuilder相對應,SqlDataAdapter和SqlCommandBuilder也可以完成用SQL語言為指令的資料庫更新。

假設在D:盤創建了Access資料庫,其路徑為d:\0DBAcs\account.mdb,資料庫中有一張名為kai的資料庫表。表結構如下:
表名;Kai
欄位Field Name類型說明
1開支IDkzID長整型自動編號
2開支人Kzren文本50字元
3開支項目名kzname文本50字元
4日期riqi日期/時間99-99-99;0掩碼
5開支說明shuoming文本225字元
6總金額zonge單精度小數點任意;這項開支的總花費
7數量shuliang長整型www.kmxxfc.com
8單價Danjia單精度小數點任意

表建好之後:(1)對表中添加新數據(2)查詢表中的某個欄位。為了實現這兩項功能,以下幾個問題要考慮:
1准備工作
聲明必須的公共變數
建立與資料庫的連接,創建DataSet對象
2添加記錄
在DataSet對象上添加記錄
同步DataSet對象對象與資料庫中的數據,這一點很重要,很多人忘記了數據進行同步,結果往往是添加、修改的數據不能保存到資料庫中。
3查詢資料庫表中某記錄的某欄位;

我們可以將上述功能用一個類DataOper實現,下面是程序設計的主要活動。
聲明要用的C#系統類
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;

聲明DataOper類中的公共變數
private string DBlocation;
private OleDbConnection dbconn; //資料庫連接
private OleDbDataAdapter da;

建立與資料庫的連接,這里採用了OLEDB方法:
dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=d:\0DBAcs\account.mdb");
dbconn.Open();

創建DataSet對象
da = new OleDbDataAdapter(@"select * from kai", dbconn); //引用資料庫連接dbconn並依據SQL語句"select * from kai"創建OleDbDataAdapter對象da
DataSet ds = new DataSet(); //創建DataSet對象
da.Fill(ds); //用OleDbDataAdapter對象da填充、更新剛創建的DataSet對象

添加記錄並更新資料庫
OleDbCommandBuilder cb = new OleDbCommandBuilder(da); // 創建OleDbCommandBuilder對象cb用於更新OleDbDataAdapter對象da的Insert、Delete、Update指令
da.UpdateCommand = cb.GetUpdateCommand(); //更新OleDbDataAdapter對象da的指令
設計人員可以編寫自己的更新指令,也可以象上面所寫的那樣用系統默認的指令。但不管怎樣,上面的語句不能缺少,否則程序在運行中會拋出異常System.InvalidOperationException,並提示:Update requires a valid InsertCommand when passed DataRow collection with new rows.


DataRow drx = ds.Tables[0].NewRow(); //創建一條新記錄行

drx["kzren"] = "kzren";
drx["kzname"]="kzname";
drx["riqi"]=2008-10-11;
drx["shuoming"]="shuoming";
drx["zonge"] = 12;
drx["shuliang"] = 3;
drx["danjia"] = 4;
ds.Tables[0].Rows.Add(drx); //在表中追加記錄
da.Update(ds); //更新資料庫

要查詢引用某記錄的某欄位,直接按如下的方法引用就可以了。
String kx=ds.Tables[0].Rows[0]["kzren"].ToString()連接access
首先看一個例子代碼片斷:
程序代碼:www.lzfsk.com/
--------------------------------------------------------------------------------
using system.data;
using system.data.oledb;
......
string strconnection="provider=microsoft.jet.oledb.4.0;";
strconnection+=@"data source=c:\begas.Net\northwind.mdb";
oledbconnection objconnection=new oledbconnection(strconnection);
......
objconnection.open();
objconnection.close();
......
--------------------------------------------------------------------------------
解釋:
連接access資料庫需要導入額外的命名空間,所以有了最前面的兩條using命令,這是必不可少的!
strconnection這個變數里存放的是連接資料庫所需要的連接字元串,他指定了要使用的數據提供者和要使用的數據源.
"provider=microsoft.jet.oledb.4.0;"是指數據提供者,這里使用的是microsoft jet引擎,也就是access中的數據引擎,ASP.net就是靠這個和access的資料庫連接的.
"data source=c:\begaspnet\northwind.mdb"是指明數據源的位置,他的標准形式是"data source=mydrive:mypath\myfile.mdb".
ps:
1."+="後面的"@"符號是防止將後面字元串中的"\"解析為轉義字元.
2.如果要連接的資料庫文件和當前文件在同一個目錄下,還可以使用如下的方法連接:
strconnection+="data source=";
strconnection+=mappath("northwind.mdb");
這樣就可以省得你寫一大堆東西了!
3.要注意連接字元串中的參數之間要用分號來分隔.
"oledbconnection objconnection=new oledbconnection(strconnection);"這一句是利用定義好的連接字元串來建立了一個鏈接對象,以後對資料庫的操作我們都要和這個對象打交道.
"objconnection.open();"這用來打開連接.至此,與access資料庫的連接完成.其餘操作(插入,刪除...)請參閱相關書籍
連接SQL Server
例子代碼片斷:
程序代碼:

--------------------------------------------------------------------------------
using system.data;
using system.data.sqlclient;
...
string strconnection="user id=sa;passWord=;";
strconnection+="initial catalog=northwind;server=yoursqlserver;";
strconnection+="connect timeout=30";
sqlconnection objconnection=new sqlconnection(strconnection);
...
objconnection.open();
objconnection.close();
...
--------------------------------------------------------------------------------
解釋:
連接sql server資料庫的機制與連接access的機制沒有什麼太大的區別,只是改變了connection對象和連接字元串中的不同參數.
首先,連接sql server使用的命名空間不是"system.data.oledb",而是"system.data.sqlclient".
其次就是他的連接字元串了,我們一個一個參數來介紹(注意:參數間用分號分隔):
"user id=sa":連接資料庫的驗證用戶名為sa.他還有一個別名"uid",所以這句我們還可以寫成"uid=sa".
"password=":連接資料庫的驗證密碼為空.他的別名為"pwd",所以我們可以寫為"pwd=".
這里注意,你的sql server必須已經設置了需要用戶名和密碼來登錄,否則不能用這樣的方式來登錄.如果你的sql server設置為Windows登錄,那麼在這里就不需要使用"user id"和"password"這樣的方式來登錄,而需要使用"trusted_connection=sspi"來進行登錄.
"initial catalog=northwind":使用的數據源為"northwind"這個資料庫.他的別名為"database",本句可以寫成"database=northwind".
"server=yoursqlserver":使用名為"yoursqlserver"的伺服器.他的別名為"data source","address","addr".如果使用的是本地資料庫且定義了實例名,則可以寫為"server=(local)\實例名";如果是遠程伺服器,則將"(local)"替換為遠程伺服器的名稱或ip地址.
"connect timeout=30":連接超時時間為30秒.
在這里,建立連接對象用的構造函數為:sqlconnection.
其餘的就和access沒有什麼區別了!
********************************************************************************************************************
用c#訪問access資料庫


我編寫這個程序的動機是當我希望用c sharp訪問msaccess資料庫的時候我沒有辦法獲得任何信息和參考材料.網上所能獲得的所有材料都是偏重於sql的,所以我們將分兩步來編寫這個應用程序,第一我們將展示如何連接到msaccess資料庫然後看看它有多復雜.最後,我們就這樣完成了這個程序.

閑言少序,讓我們開始正題.連接到資料庫的過程與我們早先的ado連接過程相比已經發生了較大的變化.下面的圖表恰當的(我希望如此)oledbconnection--> oledbcommand --> oledbdatareader.現在那些熟悉ado的人很明顯能看出兩者的相似之處但是為了使那些還沒有很好的適應ado的人能夠明白,下面是一些解釋.

oledbconnection -->代表對資料庫的單一連接,根據底層資料庫的功能它能給你操縱資料庫的能力.有一點必須記住,雖然oledbconnection對象出了作用范圍,它也不會自動被關閉.所以,你將不得不顯示的調用這個對象的close()方法.

oledbcommand -->這是就象我們在ado中使用的一樣的通常的command對象.你可以通過這個對象調用sql存儲過程或是sql查詢語句.

oledbdatareader -->這個類擁有非常大的重要性因為它提供了實際上的對資料庫底層數據集的訪問.當你調用oledbcommand的executereader方法的時候它就會被創建,.net beta2 sdk說不要直接創建這個類的對象.

現在你可以在.net beta 2的文檔中看到更多的關於這些主要對象的說明,下面是指出如何在程序中訪問資料庫的源代碼.

using system;
using system.data.oledb;

class oledbtest{

public static void main()
{
/創建資料庫連接
oledbconnection aconnection = new oledbconnection("provider=microsoft.jet.oledb.4.0;data source=c:\\db1.mdb");

/創建command對象並保存sql查詢語句
oledbcommand acommand = new oledbcommand("select * from emp_test", aconnection);
try
{
aconnection.open();

/創建datareader 對象來連接到表單
oledbdatareader areader = acommand.executereader();
console.writeline("this is the returned data from emp_test table");

/循環遍歷資料庫
while(areader.read())
{
console.writeline(areader.getint32(0).tostring());
}

/關閉reader對象
areader.close();

/關閉連接,這很重要
aconnection.close();
}

/一些通常的異常處理
catch(oledbexception e)
{
console.writeline("error: {0}", e.errors[0].message);
}
}
}

成功運行這個程序的步驟
1.用msaccess創建一個名叫db1.mdb的資料庫
2.創建一個名叫emp_test的表單
3.使它包含下列數據域
emp_code int
emp_name text
emp_ext text
4.將上面的代碼保存到sample.cs文件中
5.確保資料庫位於c:\並確保mdac2.6或是更新的版本已經被安裝
6.編譯運行

現在讓我們來了解一些我們在oledbconnection對象的構造函數看到的東西的一些細節,在這里你看見諸如"provider="之類的東西.下面是一些和ado.net兼容的驅動程序類型.
sqlolddb --> microsoft ole db provider for sql server,
msra --> microsoft ole db provider forOracle,
microsoft.jet.oledb.4.0 --> ole db provider for microsoft jet
你可以選擇其中的任何一個但是他們會需要傳遞不同的參數,例如jet.oledb.需要傳遞mdb文件的名字而sqloledb需要傳遞用戶名和密碼.

所有這些驅動程序都位於system.data.oledb命名空間里,所以你必須包括它,而且它們和oledb provider for odbc不兼容,也就是說你不能在VB6.0程序里使用這些驅動程序來訪問資料庫,所以不要去尋找解釋為什麼要把這些資料庫放在c:\上的資料了

當你使用microsoft sql server 7.0 或者更新版本的時候,下面是微軟給出的一些指導:
推薦使用.net data provider在下列情況中,使用microsoft sql server 7.0 或者更新版本的中間層應用程序,使用microsoft data engine (msde)或icrosoft sql server 7.0 或者更新版本的單層應用程序.
建議將ole db provider for sql server (sqloledb)和ole db .net data provider一起使用.
對於microsoft sql server 6.5和更早的版本,你必須同時使用ole db provider for sql server 和 ole db.net data provider.
推薦使用microsoft sql server 6.5和更早的版本或是oracle的中間層應用程序使用ole db .net data provider.
對於microsoft sql server 7.0 或者更新版本,推薦sql server .net data provider.
推薦單層應用程序使用microsoft access資料庫.
不推薦一個中間層程序同時使用ole db .net data provider和microsoft access資料庫.
不再支持ole db provider for odbc (msdasql)

❽ c語言怎麼連接mysql資料庫 代碼

//vc工具中添加E:\WAMP\BIN\MYSQL\MYSQL5.5.8\LIB 路徑
//在工程設置-》鏈接》庫模塊中添加 libmysql.lib
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <winsock.h>
#include "E:\wamp\bin\mysql\mysql5.5.8\include\mysql.h"
void main(){
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server ="localhost";
char *user ="root";
char *password="";
char *database="test";
char sql[1024]="select * from chinaren";
conn=mysql_init(NULL);
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0)){
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
if(mysql_query(conn,sql)){
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
res=mysql_use_result(conn);
while((row = mysql_fetch_row(res))!=NULL){
printf("%s\n",row[2]);
}
mysql_free_result(res);
mysql_close(conn);
}
===============================
#if defined(_WIN32) || defined(_WIN64) //為了支持windows平台上的編譯
#include <windows.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"
//定義資料庫操作的宏,也可以不定義留著後面直接寫進代碼
#define SELECT_QUERY "show tables;"
int main(int argc, char **argv) //char **argv 相當於 char *argv[]
{
MYSQL mysql,*handle; //定義資料庫連接的句柄,它被用於幾乎所有的MySQL函數
MYSQL_RES *result; //查詢結果集,結構類型
MYSQL_FIELD *field ; //包含欄位信息的結構
MYSQL_ROW row ; //存放一行查詢結果的字元串數組
char querysql[160]; //存放查詢sql語句字元串
//初始化
mysql_init(&mysql);
//連接資料庫
if (!(handle = mysql_real_connect(&mysql,"localhost","user","pwd","dbname",0,NULL,0))) {
fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql));
}
sprintf(querysql,SELECT_QUERY,atoi(argv[1]));
//查詢資料庫
if(mysql_query(handle,querysql)) {
fprintf(stderr,"Query failed (%s)\n",mysql_error(handle));
}
//存儲結果集
if (!(result=mysql_store_result(handle))) {
fprintf(stderr,"Couldn't get result from %s\n", mysql_error(handle));
}
printf("number of fields returned: %d\n",mysql_num_fields(result));
//讀取結果集的內容
while (row = mysql_fetch_row(result)) {
printf("table: %s\n",(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0]) ) ;
}
//釋放結果集
mysql_free_result(result);
//關閉資料庫連接
mysql_close(handle);
system("PAUSE");
//為了兼容大部分的編譯器加入此行
return 0;
}

❾ 用c語言怎麼連接資料庫呢

25.2.2. C API函數概述
這里歸納了C API可使用的函數,並在下一節詳細介紹了它們。請參見25.2.3節,「C API函數描述」。

函數
描述

mysql_affected_rows()
返回上次UPDATE、DELETE或INSERT查詢更改/刪除/插入的行數。

mysql_autocommit()
切換 autocommit模式,ON/OFF

mysql_change_user()
更改打開連接上的用戶和資料庫。

mysql_charset_name()
返回用於連接的默認字元集的名稱。

mysql_close()
關閉伺服器連接。

mysql_commit()
提交事務。

mysql_connect()
連接到MySQL伺服器。該函數已不再被重視,使用mysql_real_connect()取代。

mysql_create_db()
創建資料庫。該函數已不再被重視,使用SQL語句CREATE DATABASE取而代之。

mysql_data_seek()
在查詢結果集中查找屬性行編號。

mysql_debug()
用給定的字元串執行DBUG_PUSH。

mysql_drop_db()
撤銷資料庫。該函數已不再被重視,使用SQL語句DROP DATABASE取而代之。

mysql_mp_debug_info()
讓伺服器將調試信息寫入日誌。

mysql_eof()
確定是否讀取了結果集的最後一行。該函數已不再被重視,可以使用mysql_errno()或mysql_error()取而代之。

mysql_errno()
返回上次調用的MySQL函數的錯誤編號。

mysql_error()
返回上次調用的MySQL函數的錯誤消息。

mysql_escape_string()
為了用在SQL語句中,對特殊字元進行轉義處理。

mysql_fetch_field()
返回下一個表欄位的類型。

mysql_fetch_field_direct()
給定欄位編號,返回表欄位的類型。

mysql_fetch_fields()
返回所有欄位結構的數組。

mysql_fetch_lengths()
返回當前行中所有列的長度。

mysql_fetch_row()
從結果集中獲取下一行

mysql_field_seek()
將列游標置於指定的列。

mysql_field_count()
返回上次執行語句的結果列的數目。

mysql_field_tell()
返回上次mysql_fetch_field()所使用欄位游標的位置。

mysql_free_result()
釋放結果集使用的內存。

mysql_get_client_info()
以字元串形式返回客戶端版本信息。

mysql_get_client_version()
以整數形式返回客戶端版本信息。

mysql_get_host_info()
返回描述連接的字元串。

mysql_get_server_version()
以整數形式返回伺服器的版本號。

mysql_get_proto_info()
返回連接所使用的協議版本。

mysql_get_server_info()
返回伺服器的版本號。

mysql_info()
返回關於最近所執行查詢的信息。

mysql_init()
獲取或初始化MYSQL結構。

mysql_insert_id()
返回上一個查詢為AUTO_INCREMENT列生成的ID。

mysql_kill()
殺死給定的線程。

mysql_library_end()
最終確定MySQL C API庫。

mysql_library_init()
初始化MySQL C API庫。

mysql_list_dbs()
返回與簡單正則表達式匹配的資料庫名稱。

mysql_list_fields()
返回與簡單正則表達式匹配的欄位名稱。

mysql_list_processes()
返回當前伺服器線程的列表。

mysql_list_tables()
返回與簡單正則表達式匹配的表名。

mysql_more_results()
檢查是否還存在其他結果。

mysql_next_result()
在多語句執行過程中返回/初始化下一個結果。

mysql_num_fields()
返回結果集中的列數。

mysql_num_rows()
返回結果集中的行數。

mysql_options()
為mysql_connect()設置連接選項。

mysql_ping()
檢查與伺服器的連接是否工作,如有必要重新連接。

mysql_query()
執行指定為「以Null終結的字元串」的SQL查詢。

mysql_real_connect()
連接到MySQL伺服器。

mysql_real_escape_string()
考慮到連接的當前字元集,為了在SQL語句中使用,對字元串中的特殊字元進行轉義處理。

mysql_real_query()
執行指定為計數字元串的SQL查詢。

mysql_refresh()
刷新或復位表和高速緩沖。

mysql_reload()
通知伺服器再次載入授權表。

mysql_rollback()
回滾事務。

mysql_row_seek()
使用從mysql_row_tell()返回的值,查找結果集中的行偏移。

mysql_row_tell()
返回行游標位置。

mysql_select_db()
選擇資料庫。

mysql_server_end()
最終確定嵌入式伺服器庫。

mysql_server_init()
初始化嵌入式伺服器庫。

mysql_set_server_option()
為連接設置選項(如多語句)。

mysql_sqlstate()
返回關於上一個錯誤的SQLSTATE錯誤代碼。

mysql_shutdown()
關閉資料庫伺服器。

mysql_stat()
以字元串形式返回伺服器狀態。

mysql_store_result()
檢索完整的結果集至客戶端。

mysql_thread_id()
返回當前線程ID。

mysql_thread_safe()
如果客戶端已編譯為線程安全的,返回1。

mysql_use_result()
初始化逐行的結果集檢索。

mysql_warning_count()
返回上一個SQL語句的告警數。 詳見:http://dev.mysql.com/doc/refman/5.1/zh/apis.html#c-api-function-overview
http://dev.mysql.com/doc/refman/5.0/en/c.html

❿ c/c++怎麼連接資料庫,並執行SQL語句

C++連接SQL資料庫第一步 系統配置
1.設置SQLSERVER伺服器為SQL登錄方式,並且系統安全性中的sa用戶要設置登錄功能為「啟用」,還有必須要有密碼。
2.需要在ODBC中進行數據源配置,數據源選\」SQL SERVER」,登錄方式使用「使用輸入用戶登錄ID和密碼的SQL SERVER驗證」,並填寫登錄名(sa)和密碼,注意一點,密碼不能為空,這就意味著你的sa用戶必須得有密碼。否則無法通過系統本身的安全策略。測試通過就完成了配置。
C++連接SQL資料庫第二步 C++與SQL連接初始化
1.在你所建立的C++項目中的stdafx.h頭文件中引入ADO
具體代碼如下
#import 「c:\Program Files\Common Files\System\ado\msado15.dll」
no_namespace rename(」EOF」, 「adoEOF」) rename(」BOF」, 「adoBOF」)
2.定義_ConnectionPtr變數後調用Connection對象的Open方法建立與伺服器的連接。
數據類型_ConnectionPtr實際上是由類模板_com_ptr_t得到的一個具體的實例類。_ConnectionPtr類封裝了Connection對象的Idispatch介面指針及其一些必要的操作。可以通過這個指針操縱Connection對象。
例如連接SQLServer資料庫,代碼如下:
//連接到MS SQL Server
//初始化指針
_ConnectionPtr pMyConnect = NULL;
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
return;
//初始化鏈接參數
_bstr_t strConnect = 「Provider=SQLOLEDB;
Server=hch;
Database=mytest;
uid=sa; pwd=sa;」; //Database指你系統中的資料庫
//執行連接
try
{
// Open方法連接字串必須四BSTR或者_bstr_t類型
pMyConnect->Open(strConnect, 「」, 「」, NULL);
}
catch(_com_error &e)
{
MessageBox(e.Description(), 「警告」, MB_OK|MB_ICONINFORMATION);
}//發生鏈接錯誤

C++連接SQL資料庫第三步 簡單的數據連接
//定義_RecordsetPtr變數,調用它Recordset對象的Open,即可打開一個數據集
//初始化過程 以下是個實例
_RecordsetPtr pRecordset;
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
return;
}
//執行操作
try
{
pRecordset->Open(_variant_t(」userinfo」),
_variant_t((IDispatch*)pMyConnect),
adOpenKeyset, adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
MessageBox(」無法打開userinfo表\」, 「系統提示」,
MB_OK|MB_ICONINFORMATION);
}

C++連接SQL資料庫第四步 執行SQL語句
這里是關鍵,我認為只要你懂點SQL語句那麼一切都會方便許多比用上面的方法簡單,更有效率點。
首先
m_pConnection.CreateInstance(_uuidof(Connection));
//初始化Connection指針
m_pRecordset.CreateInstance(__uuidof(Recordset));
//初始化Recordset指針
CString strSql=」select * from tb_goods」;//具體執行的SQL語句
m_pRecordset=m_pConnection->Execute(_bstr_t(strSql),
NULL, adCmdText);//將查詢數據導入m_pRecordset數據容器
至此 你的SQL語句已經執行完成了m_pRecordset內的數據就是你執行的結果。
取得記錄:
while(!m_pRecordset->adoEOF)//遍歷並讀取name列的記錄並輸出
{
CString temp = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem
(」name」)->Value;
AfxMessageBox(temp);
pRecordset->MoveNext();
}

插入記錄
//記得初始化指針再執行以下操作
CString strsql;
strsql.Format(」insert into tb_goods(no,name, price)
values(』%d』,'%s』, %d)」,m_intNo,m_strName,m_intPrice);
m_pRecordset=m_pConnection->
Execute(_bstr_t(strsql),NULL,adCmdText);

修改記錄
CString strsql;
strsql.Format(」update tb_goods set name=』%s』 ,
price=%d where no=%d 「,m_strName,m_intPrice,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText);

刪除記錄
CString strsql;
strsql.Format(」delete from tb_goodswhere no= 『%d』 「,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText)

熱點內容
剪力牆壓腳筋大小怎麼配置 發布:2025-01-23 00:50:53 瀏覽:534
騰訊雲cos雲伺服器 發布:2025-01-23 00:46:47 瀏覽:63
如何給安卓平板刷上MIUI系統 發布:2025-01-23 00:45:51 瀏覽:73
2開方演算法 發布:2025-01-23 00:27:21 瀏覽:16
如何看自己steam伺服器 發布:2025-01-23 00:07:21 瀏覽:710
armlinux命令 發布:2025-01-23 00:01:08 瀏覽:137
戰地4亞洲伺服器為什麼被攻擊 發布:2025-01-22 23:45:42 瀏覽:671
javascript反編譯 發布:2025-01-22 23:37:57 瀏覽:432
夏天來了你的巴氏奶存儲對嗎 發布:2025-01-22 23:37:56 瀏覽:206
求最大值c語言 發布:2025-01-22 23:22:35 瀏覽:250