①.、配置ODBC数据源.
对于1、配置数据源,配置完以后就可以编程操作数据库了.
#includewindows.h
#includesql.h
#includesqlext.h
void
main()
{
HENV
henv;
//环境句柄
HDBC
hdbc;
//数据源句柄
HSTMT
hstmt;
//执行语句句柄
unsigned
char
datasource[]="数据源名称";
//即源中设置的源名称
user[]=
"用户名";
//数据库的帐户名
pwd[]=
"密码";
//数据库的密码
search[]="select
xm
from
stu
where
xh=0";
SQLRETURN
retcode;
//记录各SQL函数的返回情况
//
分配环境句柄
retcode=
SQLAllocEnv(henv);
等介于
SQLAllocHandle(SQL_HANDLE_ENV,
SQL_NULL
,
henv);
SQLSetEnvAttr(henv,
SQL_ATTR_ODBC_VERSION,
0);
分配连接句柄
SQLAllocConnect(henv,hdbc);
SQLAllocHandle(SQL_HANDLE_DBC,
henv,
hdbc);
//设置连接属性,登录超时为*rgbValue秒(可以没有)
SQLSetConnectAttr(hdbc,
SQL_LOGIN_TIMEOUT,
(SQLPOINTER)(rgbValue),
//直接连接数据源
如果是windows身份验证,第第二段:三参数可以是
mysql是有c语言接口的,安装相应库后就可以链接了,一般连接mysql的函数是mysql_connect或者mysql_real_connect(大概就是这么拼的吧...)可以使用mysql_query执行sql语句
//在工程设置->>链接>>库模块中添加 libmysql.lib
#include stdio.h
#include time.h
#include string.h
#include winsock.h
void main(){
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server ="localhost";
char *user ="root";
char *password="";
char *database="test";
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)){
res=mysql_use_result(conn);
while((row = mysql_fetch_row(res))!=NULL){
mysql_free_result(res);
mysql_close(conn);
===============================
#include windows.h
#endif
#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 ; //存放一行查询结果的字符串数组
//初始化
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;
以上就是土嘎嘎小编为大家整理的mysql怎么和c链接相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!