poco mysql 登录

编程入门 行业动态 更新时间:2024-10-08 10:33:22

<a href=https://www.elefans.com/category/jswz/34/1740956.html style=poco mysql 登录"/>

poco mysql 登录

/* * main.cpp * * Created on: 2015年1月22日 * Author: yuhaiyang */

#include "Poco/Exception.h"

#include "Poco/Data/RecordSet.h"

#include "Poco/Data/MySQL/Connector.h"

#include "Poco/Data/MySQL/MySQLException.h"

#include

#include

#include

#include

#include

using namespace Poco::Data::Keywords;

using namespace Poco;

using namespace Poco::Data;

using Poco::format;

using Poco::NotFoundException;

//====================一般步骤========================

//-----------------------注册---------------------------

// MySQL::Connector::registerConnector();

//-------------创建 mysql Session(连接池)会话-------------------------

//Poco::Data::Session sess("MySQL",

// "host=127.0.0.1;port=3306;user=root;password=123;db=test;auto-reconnect=true");

每个参数都是在同一个字符串里的,用 ";" 隔开。

这里面很多参数不是必须的都有默认值,但是生成环境 推荐加上

auto-reconnect=true.

//------------------判断是否链接-------------------

//if (sess.isConnected())

//------------------操作数据库----------------------

/* * Poco::Data::Statement select(sess); 是可以省略的。因为我们 sess<< 时候会自动创建一个临时的 Statement * */

int main( )

{

try

{

//--------------注册---------------------------

MySQL::Connector::registerConnector();

//------------创建会话-----------------------

Poco::Data::Session sess("MySQL",

"host=192.168.1.129 ;port=3306;user=rd;password=rd;db=rd;auto-reconnect=true");

//-----------判断是否链接成功-------------

if (sess.isConnected())

{

std::cout << "yes connection is successful" << std::endl;

}

else

{

std::cout << "connection is failed" << std::endl;

}

Poco::Data::Statement sql(sess);

sql << "update users set modified=\'2014-12-30\', password=\'123456\' where username=\'yuni\'; "

//"update radcheck set value=\'123456\' where username=\'yuni\' and attribute=\'Cleartext-Password\';"

;

sql.execute();

///下面的代码一般也用不到的吧。有兴趣的可以研究一下/

//--------------------------元组--------------------------

typedef Poco::Tuple< std::string ,std::string ,int> Person;

typedef std::vector People;

//-----------------------------1. 查询-------------------

// //Poco::Data::Statement select(sess);

// //可使用元组的方式

// People data;

//

// sess << "select * from person limit 10", into(data) ,now;

// /uint32_t num = select.execute();//这一句的功能和 now 类似。都是立即执行语句。两者不可并存。

uint32_t num = sess.execute();//返回获取的行数

std::cout << "num:" << num << std::endl;

// //显示内容

// People::const_iterator it = data.begin();

// for( ; it != data.end() ; it++ )

// {

// std::cout << it->get<0>() << " ";

// std::cout << it->get<1>() << " ";

// std::cout << it->get<2>() << std::endl;

// }

//-------------如果使用 limit() 或者 range() 那么注意使用 select.done() 来判断是否是全部取出数据

// People data;

// Poco::Data::Statement select( sess );

// select << "select * from person ", into(data) ,range(0,1) ,now;

//

// do{

// select.execute();

// std::cout << "one time" << std::endl;

// }while( !select.done() );

//

// People::const_iterator it = data.begin();

// for (; it != data.end(); it++)

// {

// std::cout << it->get<0>() << " ";

// std::cout << it->get<1>() << " ";

// std::cout << it->get<2>() << std::endl;

// }

//----------------------------2.异步查询-------------------------------------

Poco::Data::Statement select( sess );

select << "select * from person", now;

Poco::Data::RecordSet rs(select);

std::size_t cols = rs.columnCount();

std::cout << cols << std::endl;

for (std::size_t col = 0; col < cols; col++)

{

std::cout << rs.columnName(col) << " ";

}

std::string name = rs.value( "name", 0) ;

std::cout << "\ndata:" << name << std::endl;

} catch (MySQL::MySQLException &e)

{

std::cerr << "MySQLException : " << e.what() << std::endl;

} catch (Poco::Exception &e)

{

std::cerr << "Exception : " << e.what() << std::endl;

} catch (...)

{

std::cerr << "some error occur" << std::endl;

}

}

更多推荐

poco mysql 登录

本文发布于:2024-03-09 23:50:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1726474.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:poco   mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!