Форум программистов, компьютерный форум CyberForum.ru

Запрос к mysql выполняется через раз - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поменять местами в каждой строке матрицы минимальный и максимальный элементы, подскажите ошибки http://www.cyberforum.ru/cpp-beginners/thread1309249.html
Помогите мне найти мои ошибки. В произвольной матрице поменять местами в каждой строке минимальный и максимальный элементы. Надо чтобы в этой программе были пункты меню (оператор switch-case): 1. Ввод матрицы с клавиатуры 2. Случайный ввод матрицы 3. Вывод матрицы на экран
C++ Получить в другом файле все компоненты первого файла кроме кратных некоторому числу Записать в файл f последовательного доступа N натуральных чисел. Получить в другом файле последовательного доступа все компоненты файла f, кроме тех, которые кратны К. Вывести полученный файл на печать. Напишите код на С++! Очень нужно! http://www.cyberforum.ru/cpp-beginners/thread1309248.html
Определение задержки между посылками COM C++
Здравствуйте, возможно ли определить временную задержку между байтами принимаемыми через COM?? Добавлено через 1 час 47 минут упп
C++ Программа на тему структура ветвления выбор - иначе
Помогите составить программу по заданию, подскажите хоть что нибудь. Задание: введите четыре числа с клавиатуры , смените цвет фона экрана и выведите в центре экрана только трехзначные из них, причем кратные пяти красным цветом, кратные трем желтым цветом, остальные белым цветом
C++ Перевести с Паскаля на С++ http://www.cyberforum.ru/cpp-beginners/thread1309234.html
Помогите, пожалуйста! Переведите код с Паскаля на С++!! Срочно!! program ghost; uses crt; type man = Record fam: String; name: String;
C++ Определить принадлежность символа к тому или иному алфавиту После ввода с клавиатуры произвольного строки определить его принадлежность к тому или иному алфавита. Символы, которые не входят в алфавиты, а не анализировать. Возможен третий вариант ответа. Срочно надо, напишите код на С++!! Заранее благодарю за помощь! подробнее

Показать сообщение отдельно
Kapitan79
3 / 3 / 0
Регистрация: 13.10.2013
Сообщений: 145
24.11.2014, 14:37     Запрос к mysql выполняется через раз
Всем привет.

Вновь вынужден обратиться за помощью.

Я написал класс, выполняющий запрос к mysql и записывающий результат в вектор.
Но возник странный глюк - строка "res = stmt->executeQuery(query);" выполняется случайным образом. Иногда подряд несколько раз, иногда несколько раз не выполняется и результатов запроса я не вижу.
Бывает что результат запроса содержит только часть строк из базы данных.
В чём может быть дело?

Код ниже.

main

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "query_class.h"
 
using namespace std;
 
int main(void)
{
    query_class q;
    q.dicts.push_back("dict_rule");
    q.fields.push_back("id_rule") ;
    q.fields.push_back("description") ;
    q.fields.push_back("rule_text") ;
    string r = q.select();
    //cout << "Первый элемент массива " << q.result[0][1]<<endl;
    return 0;
}
query_class.h

C++
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
/* 
 * File:   query_class.h
 * Author: fedoseev
 *
 * Created on 22 Ноябрь 2014 г., 18:11
 */
 
#ifndef QUERY_CLASS_H
#define QUERY_CLASS_H
 
#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <mysql/mysql_connection.h>
#include <mysql/cppconn/driver.h>
#include <mysql/cppconn/exception.h>
#include <mysql/cppconn/resultset.h>
#include <mysql/cppconn/statement.h>
#include <string>
#include <vector>
 
using namespace std;
 
class query_class {
    
public:
    query_class();
    
    std::vector<std::string> dicts;
    std::vector<std::string> fields;
    string select()                    ;
    std::vector<std::vector<std::string> >  result;
private:
    
 
    
};
query_class.cpp

C++
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/* 
 * File:   query_class.cpp
 * Author: fedoseev
 * 
 * Created on 22 Ноябрь 2014 г., 18:11
 */
 
#include "query_class.h"
 
using namespace std;
 
query_class::query_class() 
{
    
}
 
string query_class::select()
{    
 
    sql::Driver     *driver ;
    sql::Connection *con    ;
    sql::Statement  *stmt   ;
    sql::ResultSet  *res    ;
    //query_class     q       ;
    string          field = ""  ;
    string          dict  = ""  ;
    string          select= "select ";
    string          from  = " from ";
    string          query ;      
    /* Создание соединения */
    driver = get_driver_instance();
    con = driver->connect("tcp://mysql_server:3306", "user", "pass");
    
    /* Подключение к базе данных mysql */
    con->setSchema("scada");
    
    /* Создание строки со списком полей для запроса */
    int num_field = sizeof(fields)/sizeof(string);
    //int num_field = q.fields.size();
    
    for (int i=0; i<num_field; i++)
    {
        if (field == "") {field = dicts[0]+"."+fields[i];}
        else if (field != "") {field += ", "+dicts[0]+"."+fields[i];}  
    }
    
    query = select + field + from + dicts[0];
    cout << "Запрос составлен" << endl;
    stmt = con->createStatement();
    cout << "Statement создан" << endl;
    res = stmt->executeQuery(query);    
    cout << "Запрос выполнен" << endl;
    int j = 0;
    while (res->next())
    {
        result.resize(j+1);
        cout << "Длина массива " << j << endl;
        result[j].resize(num_field);
        for (int i=0; i<num_field; i++)
            {
              cout << "Строка " << j << " Столбец " << i << endl;
              result[j][i] = res->getString(fields[i]);
            }
        j++;
    } 
    cout << result [45][1] << endl;
    delete res;
    delete stmt;
    delete con;
 
 
 
return "figa";
}
Добавлено через 2 часа 40 минут
Вопрос снимается.
Глюк проявляется только внутри IDE, скомпилированная программа работает нормально.

Добавлено через 28 секунд
Вопрос снимается.
Глюк проявляется только внутри IDE, скомпилированная программа работает нормально.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru