Russian Qt Forum

Qt => Базы данных => Тема начата: alexey.kokovin от Июль 03, 2006, 10:22



Название: [solved] [Qt 4.1.1 MSVC] вставка в таблицу MySQL
Отправлено: alexey.kokovin от Июль 03, 2006, 10:22
у меня есть файл, состоящий из некоторого набора полей. каждую строчку из этого файла я считываю, и предполагается, что считанная строчка будет добавляться в таблицу.

Сам запрос я формирую так:
Код:
if (ins.prepare("insert into \'" + db.databaseName()+"\'.\'"+logname.toLower() + "\' (" + queryclm + ") values (" + queryval + ")"))
{
k = 0;
ins.bindValue(k,k);
k++;
while ((e = line.indexOf(tr("\t"),s,Qt::CaseInsensitive)) != -1 && k <dimen )
{
QString subval = line.mid(s, e-s);
s = e+1;
subval.append(tr("\'"));
subval.prepend(tr("\'"));
ins.bindValue(k,subval);
k++;
}
ins.exec();

где queryclm - список полей в заголовке файла через запятую,
queryval - список вводимых значений.
subval - непосредственно значения того или иного поля в одинарных кавычках.
Суть проблемы: не выполняется prepare.
Получаемый запрос выглятит так:
Код:
insert into 'logsystem'.'webextd' (idlog, cip, csusername, cagent, date, time, scomputername, csreferred, rhost, rip, rport, timetaken, csbytes, scbytes, csprotocol, soperation, csuri, sobjectsource, scstatus ) values (:idlog, : cip, :csusername, :cagent, :date, :time, :scomputername, :csreferred, :rhost, :rip, :rport, :timetaken, :csbytes, :scbytes, :csprotocol, :soperation, :csuri, :sobjectsource, :scstatus )


Помогите, чем сумеете..


Название: [solved] [Qt 4.1.1 MSVC] вставка в таблицу MySQL
Отправлено: Admin от Июль 03, 2006, 11:28
не указана база, MySQL к примеру

а запрос в MySQL ыглядит так

insert into logsystem.webextd(idlog, cip) values('1','2')

у тебя странным виглядит это место :time, :scomputername


Название: [solved] [Qt 4.1.1 MSVC] вставка в таблицу MySQL
Отправлено: alexey.kokovin от Июль 03, 2006, 11:55
Дело оказалось в пробеле между ":" и "cip". :-) всем спасибо.


Название: [solved] [Qt 4.1.1 MSVC] вставка в таблицу MySQL
Отправлено: Admin от Июль 03, 2006, 18:24
ааа точно вы же через bind пользуете