Russian Qt Forum

Qt => Базы данных => Тема начата: lokoArt от Январь 13, 2010, 07:55



Название: Знак % в выводе
Отправлено: lokoArt от Январь 13, 2010, 07:55
Подскажите плиз как пользоваться % в выводе, ато всегда забываю(((
Вот  строка
Код:
query.exec("INSERT INTO CLIENTS VALUES('%NAME', '%SURNAME', '%PATRONYMIC', 
'%DATEOFBIRTHDAY', '%ADDRESS')", name, surname, patronymic, dateOfBirthday, address);


Название: Re: Знак % в выводе
Отправлено: MoPDoBoPoT от Январь 13, 2010, 15:46
В смысле "в выводе"?
Так что ли:
Код
C++ (Qt)
query.exec(QString("INSERT INTO CLIENTS VALUES('%1', '%2', '%3', '%4', '%5')")
.arg(name, surname, patronymic, dateOfBirthday, address)
   );
 
А вообще у тебя какая СУБД? Лучше использовать подготовленный (prepared) запрос, если СУБД это поддерживает.


Название: Re: Знак % в выводе
Отправлено: DS_tm от Январь 13, 2010, 16:04
Так что ли:
Код
C++ (Qt)
query.exec(QString("INSERT INTO CLIENTS VALUES('%1', '%2', '%3', '%4', '%5')")
.arg(name, surname, patronymic, dateOfBirthday, address)
   );
 

Такой вариант не прокатит, dateOfBirthday не QString и не приводиться к нему автоматически, так что:
Код
C++ (Qt)
query.exec(QString("INSERT INTO CLIENTS VALUES('%1', '%2', '%3', '%4', '%5')")
.arg(name, surname, patronymic, dateOfBirthday.toString(), address));
 

А вообще, если база держит бинды, то уж лучше

Код
C++ (Qt)
       QSqlQuery query;
       query.prepare("INSERT INTO CLIENTS VALUES(?, ?, ?, ?, ?)");
       query.addBindValue(name);
       query.addBindValue(surname);
       query.addBindValue(patronymic);
       query.addBindValue(dateOfBirthday);
       query.addBindValue(address);
       query.exec();
 


Название: Re: Знак % в выводе
Отправлено: MoPDoBoPoT от Январь 13, 2010, 16:45
Такой вариант не прокатит, dateOfBirthday не QString и не приводиться к нему автоматически
От нас скрыт тип dateOfBirthday, может это QString, ну а вообще да  :)