标签: mysql++

"在MySQL ++中,'assert'未在此范围内声明"

我正在编译XCode中的一个项目,其中包含和链接了MySQL ++.出于某种原因,我不断收到以下编译器错误:

'assert'未在此范围内声明

源自cpool.h,一个头文件,是MySQL ++的一部分.有谁知道为什么会被触发?

编辑:作为参考,MySQL ++是通过Macports安装的.

c++ macos xcode assert mysql++

6
推荐指数
2
解决办法
2万
查看次数

在linux中设置Mysql ++

我想用Linux中的C++连接到mysql数据库.在我的本地机器上,我正在运行Ubuntu,并安装了mysql服务器和客户端软件包:

sudo apt-get install mysql-server mysql-client

我遇到了Mysql ++,但是从他们的二进制包运行./configure时遇到了一些问题.错误说:

检查MySQL库目录... configure:错误:在'/ usr/lib64/usr/lib/usr/lib64/mysql/usr/lib/mysql/usr/local/lib64/usr/local中找不到mysqlclient库/ lib/usr/local/lib/mysql/usr/local/mysql/lib/usr/local/mysql/lib/mysql/usr/mysql/lib/mysql/opt/mysql/lib/opt/mysql/lib/mysql/sw/lib/sw/lib/mysql'

我看到我可以使用此命令指定路径:

./configure --with-mysql-lib =/...

但我不知道在哪里指出它.我使用whereis mysql但找不到任何包含lib子目录的mysql目录.mysqlclient库在哪里安装?


编辑:

找到之后libmysqlclient我回来了

/usr/lib/i386-linux-gnu/libmysqlclient.so.18
/usr/lib/i386-linux-gnu/libmysqlclient.so.18.0.0
/usr/lib/i386-linux-gnu/libmysqlclient_r.so.18
/usr/lib/i386-linux-gnu/libmysqlclient_r.so.18.0.0
/usr/share/doc/libmysqlclient18
/usr/share/doc/libmysqlclient18/changelog.Debian.gz
/usr/share/doc/libmysqlclient18/copyright
/var/cache/apt/archives/libmysqlclient18_5.5.22-0ubuntu1_i386.deb
/var/lib/dpkg/info/libmysqlclient18:i386.list
/var/lib/dpkg/info/libmysqlclient18:i386.md5sums
/var/lib/dpkg /info/libmysqlclient18:i386.postinst
/var/lib/dpkg/info/libmysqlclient18:i386.postrm
/var/lib/dpkg/info/libmysqlclient18:i386.shlibs

所以,我试过./configure --with-mysql-lib=/usr/lib/i386-linux-gnu ,似乎完成没有任何抱怨.

虽然这解决了完成./configure完成的问题,但我仍然有进一步的麻烦.当我运行的make东西一直很好,直到这一点:

在./lib/sql_buffer.h:31:0中包含的文件中,来自./lib/sql_buffer.cpp:26:./lib/refcounted.h:258:2:错误:'size_t'没有命名类型. /lib/refcounted.h:在构造函数'mysqlpp :: RefCountedPointer :: RefCountedPointer()':./ lib/refcounted.h:89:2:error:class'mysqlpp :: RefCountedPointer'没有任何名为'refs_的字段'./lib/refcounted.h:在构造函数'mysqlpp :: RefCountedPointer :: RefCountedPointer(T*)':./ lib/refcounted.h:100:2:error:class'mysqlpp :: RefCountedPointer'没有任何名为'refs_'./lib/refcounted.h:104:4的字段:错误:'refs_'未在此范围内声明./lib/refcounted.h:104:16:错误:'size_t'之前的预期类型说明符./lib/refcounted.h:104:16:错误:预期';' 在'size_t'之前./lib/refcounted.h:在构造函数'mysqlpp :: RefCountedPointer :: RefCountedPointer(const ThisType&)':./ lib/refcounted.h:112:2:error:class'mysqlpp :: RefCountedPointer'没有任何名为'refs_'./lib/refcounted.h:115:8的字段:错误:'refs_'未在此范围内声明./lib/refcounted.h:在析构函数'mysqlpp :: RefCountedPointer :: ~RefCountedPointer ()':./ lib/refcounted.h:125:7:错误:'refs_'未在此范围内声明./lib/refcounted.h:在成员函数'void mysqlpp :: RefCountedPointer :: …

mysql ubuntu mysql++

6
推荐指数
1
解决办法
8015
查看次数

mysql ++插入如何?

我有问题将一些值插入数据库.数据库名称是用户,表是英雄.我正在为了学习而开发一些mmorpg游戏.

这是有效的mysql代码

INSERT INTO heroes (HeroID,Strenght, Dexterity, Vitality, Wisdom, Inteligence, Luck, Name, Level, XP) VALUES (NULL,  17, 13, 17, 15, 9, 8, 'works', 4, 3750);
Run Code Online (Sandbox Code Playgroud)

但是当我从c ++通过mysql ++尝试时,我得到了错误.

码:

#include <mysql++/mysql++.h>

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
// Connect to the database.
mysqlpp::Connection conn(false);

if (conn.connect("users", "localhost",
        "root", "toor")) 
{

    mysqlpp::Query query = conn.query();
   query << "INSERT INTO heroes" <<
    "VALUES (NULL, 17, 13, 17, 15, 9, 8, doSomething,3, 3260);";

    query.execute();
    if (mysqlpp::StoreQueryResult res = query.store()) …
Run Code Online (Sandbox Code Playgroud)

c++ mysql++

5
推荐指数
2
解决办法
2286
查看次数

避免在typedef c ++中发生冲突的声明错误

有没有办法让 g++ 忽略或解决冲突的 typedef?

背景:

我正在为 gridlab_d 模拟器编写一些 C++ 代码。我的模型需要连接到 C++ 数据库,所以我使用的是 mysql++ 库。使用 mysql++ 库需要我链接到 mysql 库,所以我编译

g++ -I/usr/include/mysql -I/usr/local/include/mysql++

问题:

gridlab typedef 中的 mysql.h 和 list.h 都是一个名为 LIST 的结构体。这是编译器错误

In file included from /usr/include/mysql/mysql.h:76, 
             from /usr/include/mysql++/common.h:182,
             from /usr/include/mysql++/connection.h:38,
             from /usr/include/mysql++/mysql++.h:56,
             from direct_data.cpp:21:
/usr/include/mysql/my_list.h: At global scope:
/usr/include/mysql/my_list.h:26: error: conflicting declaration 'typedef struct st_list LIST'
../core/list.h:22: error: 'LIST' has a previous declaration as 'typedef struct s_list LIST'
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

c++ gcc typedef g++ mysql++

4
推荐指数
1
解决办法
1万
查看次数

使用mysql ++库时遇到问题

我已经阅读了教程,我通常会了解它的工作原理:http: //tangentsoft.net/mysql++/doc/html/userman/tutorial.html#simple

我正在尝试构建这个mysql ++代码,我收到一个错误:

std::ostringstream query3;
query3<<"select pipe_id from pipe where version_id='"<<id<<"'";
std::storeQueryResult ares=query3.store();

for(size_t i=0;i<ares.num_rows();i++)   
   cout<<ares[i]["version_id"]<<ares[i]["pipe_id"]<<std::endl;

mysql_query(&mysql,query3.str().c_str());
Run Code Online (Sandbox Code Playgroud)

错误是store不是其成员ostringstream.我不知道如何纠正这个问题.


嗨,梅林,

感谢您的代码并查看我的问题.

我尝试了上面的代码,但我又得到了错误

错误:请求'连接'中的成员'查询',这是非类型类型'MYSQL*'

在这行代码上

// Construct a query object with the query string mysqlpp::Query query = 
connection.query(query_string);
Run Code Online (Sandbox Code Playgroud)

在我出错的地方帮忙吗?

c++ mysql select mysql++

2
推荐指数
1
解决办法
698
查看次数

MySQL ++和AUTO_INCREMENT

用于使用MySQL + +(C + +库)

数据库有一些字段,您可以使用AUTO_INCREMENT.如何知道在向表中插入新行时这些字段的值是多少?

mysql++

2
推荐指数
1
解决办法
652
查看次数

mysqlpp 连接方法超时 - 我如何控制它?

我试图控制连接方法超时,但我没有找到合适的平均值。

为了清楚起见,我不是在谈论空闲连接超时(ConnectTimeoutOption)。

我需要处理的情况是一个数据库消失了,我的服务器必须处理这个问题。我目前的处理方式是 ping 服务器,如果我注意到 ping 失败,我会将查询暂停 100 秒。之后,我试图重新建立连接。问题是,如果数据库还是死机,那么connect方法需要20秒左右的时间才能应答(可以通过拔网线模拟),这对我来说太多了。

c++ mysql database-connection mysql++

2
推荐指数
1
解决办法
2230
查看次数

标签 统计

mysql++ ×7

c++ ×5

mysql ×3

assert ×1

database-connection ×1

g++ ×1

gcc ×1

macos ×1

select ×1

typedef ×1

ubuntu ×1

xcode ×1