Russian Qt Forum

Qt => Вопросы новичков => Тема начата: karpenko1989 от Февраль 06, 2012, 07:58



Название: [Решено] Передача переменной из одной функции в другую
Отправлено: karpenko1989 от Февраль 06, 2012, 07:58
Здравствуйте, понимаю, что вопрос немного не по теме форума, но буду очень признателен, тем, кто мне поможет.

Имеется публичная функция не принадлежащая ни одному из классов.

Код:
QSqlDatabase& CreateConnection();

Код:
#include "dbConnect.h"

QSqlDatabase& CreateConnection() {
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    QSqlDatabase &db1 = db;
    db1.setDatabaseName("emp_smad_1");
    db1.setUserName("root");



    if (!db1.open()) {
        QMessageBox::critical(0, QObject::tr("Database Error"),
                              db1.lastError().text());

    }

    return db1;

}

И паблик слот void realTimePoints(QSqlDatabase &db1) определенный в классе TrendTop.

Необходимо взять переменную db1 из CreateConnection() и вдальнейшем использовать её в realTimePoints(&db1).

Пишу так:
Код:
void TrendTop::realTimePoints(&db1) {

    if (db1.isOpen()) {
        QSqlQuery query(db1);
        query.exec("SELECT tm, val  FROM currstamp where id = 1136");
        if ( query.next() ) {
          osX = query.value(0).toUInt();
          osY = query.value(1).toString();
        }

Но ничего не работает.
Код:
variable or field 'realTimePoints' declared void
'db1' was not declared in this scope
Как мне это исправить?


Название: Re: Передача переменной из одной функции в другую
Отправлено: Blackwanderer от Февраль 06, 2012, 08:30
Код
C++ (Qt)
void TrendTop::realTimePoints(&db1){}
Код:
variable or field 'realTimePoints' declared void
'db1' was not declared in this scope
Без обид, но вам нужно изучать самые основы языка. Уже потом ООП. У вас функция описана синтаксически неправильно о чем и сообщает компилятор. И на лицо непонимание механизма передачи параметров в функции и концепций областей видимости.


Название: Re: Передача переменной из одной функции в другую
Отправлено: karpenko1989 от Февраль 06, 2012, 09:57
Тему можно закрывать, ошибку нашел