Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 7.6.2010, 19:03 |
- Исключается возможность SQL-инъекций это актуально только для случая, когда запрос формируется из пользовательского ввода, да и то не всюду. А в системах с произвольным открытым доступом |
|
MoPDoBoPoT | Дата 7.6.2010, 18:31 |
query.exec("SELECT CODE_D FROM DIST WHERE NAME_D = '"+name+"'"); Лучше использовать QSqlQuery::prepare() + QSqlQuery::bindValue() + QSqlQuery::exec(), чем QString::arg() + QSqlQuery::exec(). При использовании подготовленных запросов: - Исключается возможность SQL-инъекций - Оптимизицация по скорости выполнения запроса на стороне СУБД (в случае, когда используются однообразные запросы - меняются только значения в условии WHERE), но это когда СУБД и драйвер поддерживают |
|
bayah | Дата 7.6.2010, 15:59 |
Все ясно, разобрались. Проблема была в том что строка запроса должна была выглядеть так:
Для этого в QT это должно было выглядеть так:
Всем спасибо за внимание._) |
|
kibsoft | Дата 7.6.2010, 15:51 |
Цитата query.exec("SELECT NAME_D FROM DIST WHERE CODE_D = "+id+";"); query.next(); QString a = query.value(0).toString(); query.next() попробуй заменить на query.first(). |
|
bayah | Дата 7.6.2010, 15:13 |
Возможно я сошел с ума, но... Есть таблица.
Таблица, к примеру, заполнена значениями: CODE_D NAME_D 1 alpha 2 beta 3 gama Дальше я делаю запрос:
Если же пытаюсь сделать наоборот - по имени получить код, ничего не выходит:
query.next() возвращает false. Я что-то не понимаю видимо? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 27.4.2024, 19:41 |