URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6650
[ Назад ]

Исходное сообщение
"c++ и mysql++"

Отправлено weldpua2008 , 02-Авг-07 03:28 
Привет всем
Получаю ошибку на строке ip=row["ip"];
Я так понимаю что нельзя применить = в данном случае - возможно ли как-то обойти это без дописывания библиотеки mysql++?


Вот часть кода...
mysqlpp::Row row;
mysqlpp::Row::size_type i;
string ip;
for (i = 0; row = res.at(i); ++i) {

            ip=row["ip"];
}


Ощшибка:
./try.cpp: In function ‘int main(int, char**)’:
./try.cpp:71: error: ambiguous overload for ‘operator=’ in ‘ip = mysqlpp::Row::operator[](const char*) const(((const char*)"ip"))’
/usr/include/c++/4.1.3/bits/basic_string.h:493: note: candidates are: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
/usr/include/c++/4.1.3/bits/basic_string.h:504: note:                 std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]


Переписываю так:
mysqlpp::Row row;
mysqlpp::Row::size_type i;
for (i = 0; row = res.at(i); ++i) {;}
row = res.at(0);
string ip=row["ip"];


./try.cpp: In function ‘int main(int, char**)’:
./try.cpp:71: error: conversion from ‘const mysqlpp::ColData’ to non-scalar type ‘std::basic_string<char, std::char_traits<char>, std::allocator<char> >’ requested


Содержание

Сообщения в этом обсуждении
"c++ и mysql++"
Отправлено anonymous , 02-Авг-07 03:44 
>Привет всем
>Получаю ошибку на строке ip=row["ip"];
>Я так понимаю что нельзя применить = в данном случае - возможно
>ли как-то обойти это без дописывания библиотеки mysql++?

Можно, просто компилятор не знает, ты хочешь присвоить при помощи string::operator=(char) или string::operator=(const char*)

Попробуй так:
ip = (const char *) row["ip"];