Название: LineEdit Отправлено: alim от Май 23, 2009, 18:12 Подскажите пож-та как считать цифры из LineEdit,чтобы в запросе указать число введенное пользователем?
QString text_win2 = lineEdit->text(),//bank text2_win2 = lineEdit2->text(),//country text3_win2 = lineEdit3->text(),//stock exchange ; query.exec("INSERT INTO Main VALUES('"+text_win2+"','"+text2_win2+"','"+text3_win2+"',число,"); Название: Re: LineEdit Отправлено: sLiva от Май 23, 2009, 18:19 В зависимости от типа:
Код: int QString::toInt(bool *ok = 0, int base = 10) const Название: Re: LineEdit Отправлено: break от Май 24, 2009, 01:11 лучше использовать строку для подготовки запроса и функцию arg();
Код: QString sSelectQueryText = Название: Re: LineEdit Отправлено: Rcus от Май 24, 2009, 08:01 Код: QString sSelectQueryText = Название: Re: LineEdit Отправлено: ритт от Май 24, 2009, 08:48 Rcus, поясни, пожалуйста ))
Название: Re: LineEdit Отправлено: Rcus от Май 24, 2009, 09:00 Rcus, поясни, пожалуйста )) Есть у меня на работе база на оракле, к которой за много лет было написано разными людьми модулей разных, но анализ производительности усложняется тем, что не все знали о параметризации запросов, поэтому при анализе статистики вариации одного запроса всплывают несколько раз с разными "параметрами". Тогда анализ ограничен одним запросом (время выполнения, сложность etc), а самая интересная статистика в виде общего времени выполнения, количества запросов становится непригодной к использованию. Название: Re: LineEdit Отправлено: Karl-Philipp от Май 24, 2009, 10:53 Rcus, поясни, пожалуйста )) Есть у меня на работе база на оракле, к которой за много лет было написано разными людьми модулей разных, но анализ производительности усложняется тем, что не все знали о параметризации запросов, поэтому при анализе статистики вариации одного запроса всплывают несколько раз с разными "параметрами". Тогда анализ ограничен одним запросом (время выполнения, сложность etc), а самая интересная статистика в виде общего времени выполнения, количества запросов становится непригодной к использованию. Название: Re: LineEdit Отправлено: Rcus от Май 24, 2009, 11:01 Не совсем, я хотел сказать что параметризация запроса изменением текста запроса мешает анализу, даже если в отдельном случае параметры константы.
Название: Re: LineEdit Отправлено: lit-uriy от Май 24, 2009, 11:30 Rcus, тыб выразился проще. Я так понимаю твой вариант prepare ...?
Название: Re: LineEdit Отправлено: break от Май 24, 2009, 13:14 Да я на самом деле сам за параметризацию, по крайней мере когда это касается переменных, а вот когда я составляю запрос INSERT - и у меня еще не известно какие колонки будут вставляться - то через описанный способ. Но не все драйвера не всех баз для Qt поддерживают эту возм. поэтому предложил 100% рабочий вариант.
Исправляюсь: Код: QSqlQuery query; Название: Re: LineEdit Отправлено: ритт от Май 24, 2009, 16:47 благодарствую, Rcus.
до сих пор не сталкивался с необходимостью собирать статистику с бд - потому выпада и не понял. теперь всё четко и ясно :) Название: Re: LineEdit Отправлено: mugabe от Май 25, 2009, 10:07 А здесь дело не только в статистике.
Например, два варианта: Код
Код
делают одно и то же. Но второй в некоторых (а может даже в большинстве) СУБД будет работать быстрее, т.к. подготовка запроса происходит всего один раз, а это не очень то дешевая операция. Название: Re: LineEdit Отправлено: DmP от Май 26, 2009, 06:14 Но второй в некоторых (а может даже в большинстве) СУБД будет работать быстрее, т.к. подготовка запроса происходит всего один раз, а это не очень то дешевая операция. Если говорить о postgre, то будет предпочтительней говорить о третьем варианте, и писать параметры через вопросы, так как :a и :b все равно будут заменены на знаки вопроса. |