powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / mysq++ и работа с ней
2 сообщений из 2, страница 1 из 1
mysq++ и работа с ней
    #34687494
weldpua2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем

mysql++ 2.3.2
Кто может объяснить:
1.Есть код, который работает. Как можно сделать еще запрос использую те же переменные?
В php свободно можно было реинициализировать переменные, а тут наверное есть хитрая функция член класса.

авторmysqlpp::Connection con(false);
con.connect(MY_DATABASE, MY_HOST, MY_USER, MY_PASSWORD);
mysqlpp::Query query = con.query();

query << "SELECT * FROM "<<" "<< TABLE_DEFAULT <<" "<<" WHERE ip='"<< ip_argv<<"' AND activ='y'";
mysqlpp::ResUse res = query.use();



Вот вся моя прога
ЗЫ: Я только начинаю с с++
Еще такая проблема - если запрос ничего не вернул прога возвращает - Ошибка сегментирования
За кодом пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
#include "util.h"
#include <mysql++.h>
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
using namespace std;
#define MY_DATABASE     "bez"
#define TABLE_DEFAULT        "def"
#define MY_HOST         "localhost"
#define MY_USER         "root"
#define MY_PASSWORD 	""

int
main(int argc, char *argv[])
{
string ip_argv;
ip_argv=argv[ 1 ];
        mysqlpp::Connection con(false);
        con.connect(MY_DATABASE, MY_HOST, MY_USER, MY_PASSWORD);    
    mysqlpp::Query query = con.query();

query << "SELECT `ip` AS ip, `group` AS g,`num` AS n,`bw_in` AS in_,`bw_in_name` AS in_n,`bw_out` AS out_,`bw_out_name` AS out_n,`n_pipe_in` AS p_in,`n_pipe_out` AS p_out,`hour` AS h_,`activ` AS e,`id` AS `id`,`num2` AS n1 FROM "<<" "<< TABLE_DEFAULT <<" "<<" WHERE ip='"<< ip_argv<<"' AND activ='y'";
mysqlpp::ResUse res = query.use();
        if (res) {
                cout.setf(ios::left);
                mysqlpp::Row row;
                while (row = res.fetch_row()) {;}
string ip,g,n,n1,bw_in,bw_in_name,bw_out,bw_out_name,n_pipe_in,n_pipe_out,hour,activ,id;
ip=row.raw_data( 0 );
g=row.raw_data( 1 );
n=row.raw_data( 2 );
bw_in=row.raw_data( 3 );
bw_in_name=row.raw_data( 4 );
bw_out=row.raw_data( 5 );
bw_out_name=row.raw_data( 6 );
n_pipe_in=row.raw_data( 7 );
n_pipe_out=row.raw_data( 8 );
hour=row.raw_data( 9 );
activ=row.raw_data( 10 );
n1=row.raw_data( 11 );
string exec_this="";
exec_this="/sbin/pfctl -t inat -Tadd "+ip+";";
exec_this +="/sbin/ipfw delete "+n+"; ";
exec_this +="/sbin/ipfw add "+n+" pipe "+n_pipe_out+" all from not 10.0.0.0/8 to "+ip+" out;";
exec_this +="/sbin/ipfw add "+n1+" pipe "+n_pipe_in+" all from "+ip+" to not 10.0.0.0/8 to  in";
char ecc[ 4000 ];
strcpy(ecc,exec_this.c_str());
cout <<"      "<<ecc;
system(ecc);
                return  0 ;
        }
        
        else {
                cout <<"database server DOWN"<<endl;
                return  1 ;
        }
}

Запуск:

Код: plaintext
1.
#./simple1  192 . 168 . 0 . 3 
----Это вывод---
/sbin/pfctl -t inat -Tadd 192.168.0.3;/sbin/ipfw delete 500; /sbin/ipfw add 500 pipe 0 all from not 10.0.0.0/8 to 192.168.0.3 out;/sbin/ipfw add 500 pipe Kbit/s all from 192.168.0.3 to not 10.0.0.0/8 to in

///192.168.0.1 - нету в базе///
Код: plaintext
# ./simple1  192 . 168 . 0 . 1 
----Это вывод---
Ошибка сегментирования
...
Рейтинг: 0 / 0
mysq++ и работа с ней
    #34687885
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно в классе mysqlpp::Row надо проверить количество существующих колонок.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / mysq++ и работа с ней
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]