关于如何连接在线数据库的说明

来源:互联网 发布:知乎创始人 非诚勿扰 编辑:程序博客网 时间:2024/05/02 00:28


1、进入MySQL的网站http://www.mysql.com/,点击download,点击网页下方的download from oracle eDelivery,页面跳转后,注意,如果没有oracle的账号要注册,如果有最直接登陆就好,选中接受条款,点击下一步,在select a product pac的后面选“MySQL Database”,在Platform后选中“Microsoft Windows(32-bit)”点击“go”,页面天转后有很多版本,选择MySQL Database 5.6.25 ZIP for Windows x86(32-bit)下载完成。

2、解压出来以后的文件夹mysql-advanced-5.6.25-win32里的include文件夹和lib文件夹要特别留心,它的路径后面会用到。

3、打开VS,将软件页面最高处的靠近“本地Windows调试器”的两个方框中的选项改为release和x86(win32),点击打开项目的属性选项,将左上角的配置选项改为活动release,将c/c++的附加包含目录写为“include“的路径比如“C:\Users\skyadmin\Downloads\V76383-01 (1)\mysql-advanced-5.6.25-win32\include”,在链路器的常规选项的附加库目录中加入lib的路径,原理和上面相似,在输入选项中 ,加入libmysql.lib,然后,把lib文件夹下的libmysql.dll和libmysql.pdb复制到release目录下。配置完成。

// connectDB.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>
#include "stdio.h"
#include "winsock.h" 
#include "mysql.h" 


int main()
{

MYSQL * con; //= mysql_init((MYSQL*) 0); 
MYSQL_RES *res;
MYSQL_ROW row;


char tmp[400];

//database configuartion
char dbuser[30] = "lhy950424";
char dbpasswd[30] = "950424";
char dbip[30] = "138.128.212.138";
char dbname[50] = "lhy950424";
char tablename[50] = "test";
char *query = NULL;


int x;
int y;
int rt;//return value
unsigned int t;

int count = 0;


printf("input x,y\n");
scanf_s("%d%d", &x, &y);
fflush(stdin);
printf("input over\n");
con = mysql_init((MYSQL*)0);


if (con != NULL && mysql_real_connect(con, dbip, dbuser, dbpasswd, dbname, 3306/*TCP IP端口*/, NULL/*Unix Socket 连接类型*/, 0/*运行成ODBC数据库标志*/))
{
if (!mysql_select_db(con, dbname))
{
printf("Select successfully the database!\n");

con->reconnect = 1;

query = "set names \'GBK\'";
//mysql_query(con,"set names \'GBK\'"); 

rt = mysql_real_query(con, query, strlen(query));
if (rt)
{
printf("Error making query: %s !!!\n", mysql_error(con));
}
else
{
printf("query %s succeed!\n", query);
}

}
}

else
{
MessageBoxA(NULL, "Unable to connect the database,check your configuration!", "", NULL);

}

//sprintf(tmp,"update %s set 商品=\'%s\',卖出=%d,成交=%d,涨跌=%d,买进=%d,总量=%d,涨幅=%f,时间=\'%s\' where  %s",tablename,goods,sold,deal,fluctuate,buy,total,delta,time,UpdateCon);
sprintf_s(tmp, "insert into %s values(%s,%d,%d)", tablename, "null", x, y); //注意如何向具有自增字段的数据库中插入记录
  //MessageBoxA(NULL,tmp,tmp,MB_OK);
  //mysql_query(con,tmp);

rt = mysql_real_query(con, tmp, strlen(tmp));
if (rt)
{
printf("Error making query: %s !!!\n", mysql_error(con));
}
else
{
printf("%s executed!!!\n", tmp);
}

sprintf_s(tmp, "select * from %s", tablename);

rt = mysql_real_query(con, tmp, strlen(tmp));
if (rt)
{
printf("Error making query: %s !!!\n", mysql_error(con));
}
else
{
printf("%s executed!!!\n", tmp);
}

res = mysql_store_result(con);//将结果保存在res结构体中

while (row = mysql_fetch_row(res))
{
/**
* MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
* 检索行
*/

for (t = 0; t<mysql_num_fields(res); t++)
{
printf("%s  ", row[t]);
}
printf(".............\n");
count++;
}
printf("number of rows %d\n", count);
printf("mysql_free_result...\n");
mysql_free_result(res);

mysql_close(con);
int a;
scanf_s("%d", &a);
return 0;

}

运行代码,进行测试,如果,#include<mysql.h>出错,表示release的配置有问题,很可能你配置成了debug。

0 0
原创粉丝点击