PDA

View Full Version : QSqlError("", "Parameter count mismatch", "")



Alberto7
9th October 2015, 02:30
Hello,
Sorry for my English. I'm trying to select some data from a database table in order to insert the into a table from another database.

I've saved every value of each database in QStrings like these:


QString _Telefono = seleccionar2.value(8).toByteArray().constData();
QString _Tecnico_Asignado = seleccionar2.value(0).toByteArray().constData();
QString _Estado_Solicitud = seleccionar2.value(7).toByteArray().constData();

And when I use this code:


QSqlQuery guardar_s;
guardar_s.prepare("INSERT INTO Solicitudes_Trabajo (N_Solicitud, Fecha_Emision, Unidad_Hospitalaria,"
"Codigo_Equipo, Equipo, Marca)"
"VALUES (:N_Solicitud, :Fecha_Emision, :Unidad_Hospitalaria, :Codigo_Equipo, :Equipo,"
":Marca)");
guardar_s.bindValue(":N_Solicitud", _N_Solicitud);
guardar_s.bindValue(":Fecha_Emision", _Fecha_Emision);
guardar_s.bindValue(":Unidad_Hospitalaria", _Unidad_Hospitalaria);
guardar_s.bindValue(":Codigo_Equipo", _Codigo_Equipo);
guardar_s.bindValue(":Equipo", _Equipo);
guardar_s.bindValue(":Marca", _Marca);

It works fine, and inserts the values into the table perfectly, but when I use this other code;


QSqlQuery guardar_s;
guardar_s.prepare("INSERT INTO Solicitudes_Trabajo (N_Solicitud, Fecha_Emision, Unidad_Hospitalaria, Codigo_Equipo,"
"Equipo, Marca, Modelo, N_Serie, Localizacion, Unidad_Tecnica, Peticionario, Telefono, "
"Descripcion_Solicitud, Tecnico_Asignado, Tipo_Solicitud, Estado_Solicitud) "
"VALUES (:N_Solicitud, :Fecha_Emision, :Unidad_Hospitalaria, :Codigo_Equipo, :Equipo, :Marca, :Modelo,"
":N_Serie, :Localizacion, :Unidad_Tecnica, :Peticionario, :Telefono, :Descripcion_Solicitud,"
":Tecnico_Asignado, :Tipo_Solicitud, :Estado_Solicitud)");
guardar_s.bindValue(":N_Solicitud", _N_Solicitud);
guardar_s.bindValue(":Fecha_Emision", _Fecha_Emision);
guardar_s.bindValue(":Unidad_Hospitalaria",_Unidad_Hospitalaria);
guardar_s.bindValue(":Codigo_Equipo", _Codigo_Equipo);
guardar_s.bindValue(":Equipo", _Equipo);
guardar_s.bindValue(":Marca", _Marca);
guardar_s.bindValue(":Modelo", _Modelo);
guardar_s.bindValue(":N_Serie", _N_Serie);
guardar_s.bindValue(":Localizacion", _Localizacion);
guardar_s.bindValue(":Unidad_Tecnica", _Unidad_Tecnica);
guardar_s.bindValue(":Peticionario", _Peticionario);
guardar_s.bindValue(":Telefono", _Telefono);
guardar_s.bindValue(":Descripcion_Solicitud", _Descripcion_Solicitud);
guardar_s.bindValue(":Tecnico_Asignado", _Tecnico_Asignado);
guardar_s.bindValue(":Tipo_Solicitud", "a");
guardar_s.bindValue(":Estado_Solicitud", _Estado_Solicitud);

It doesn't work and shows the error:
.ERROR: QSqlError("", "Parameter count mismatch", "").

Are these too much data to insert for Qt Creator? Why it is able to insert 6 values but it isn't able to insert 16 values?

Thanks for replying!

jefftee
9th October 2015, 06:19
Qt Creator isn't relevant to what you are trying to do, but if you're asking if the Qt Database related classes can handle more than 6 bound parameters, the answer is yes. Does your table definition have a column that is NOT NULL perhaps that is missing from your insert statement?

ChrisW67
9th October 2015, 22:09
Is the call to prepare() returning true?