 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jugado1820 Ens

Registrado: 16 Jun 2010Mensajes: 37
|
Publicado: Mar 05 Abr, 2016 11:17 am Asunto: no found parameter "nif" |
|
|
Hola:
Tengo hecha una consulta sql, y me produce el error not found parameter
en todos los campos, no encuentro el motivo. Aqui os pongo la consulta:
consulta->SQL->Clear();
consulta->SQL->Text = "insert into proveedor(nif,razon_social,cp,direccion,mail,localidad,provincia,telefono,telefono2,telefono3,fax,pago,banco,contacto)";
consulta->SQL->Text = "values(:nif,:razon,:cp,:direccion,:mail,:localidad,:provincia,:telefono,:telefono2,:telefono3,:fax,:pago,:banco,:contacto)";
consulta->Params->ParamByName("nif")->AsString = nif;
consulta->Params->ParamByName("razon")->AsString = razon;
consulta->Params->ParamByName("cp")->AsString = cp;
consulta->Params->ParamByName("direccion")->AsString = direccion;
consulta->Params->ParamByName("mail")->AsString = mail;
consulta->Params->ParamByName("localidad")->AsString = localidad;
consulta->Params->ParamByName("provincia")->AsString = provincia;
consulta->Params->ParamByName("telefono")->AsString = telefono;
consulta->Params->ParamByName("telefono2")->AsString = telefono2;
consulta->Params->ParamByName("telefono3")->AsString = telefono3;
consulta->Params->ParamByName("fax")->AsString = fax;
consulta->Params->ParamByName("contacto")->AsString = contacto;
consulta->Params->ParamByName("pago")->AsString = pago;
consulta->Params->ParamByName("banco")->AsString = banco;
try{
consulta->ExecSQL();
ShowMessage("Proveedor añadido correctamente");
}
catch(...)
{
ShowMessage("Error al crear nuevo proveedor");
}
He probado a ponerlo incluso en 1 sola linea, asi:
consulta->SQL->Text = "insert into proveedor(nif,razon_social,cp,direccion,mail,localidad,provincia,telefono,telefono2,telefono3,fax,pago,banco,contacto) values(:nif,:razon,:cp,:direccion,:mail,:localidad,:provincia,:telefono,:telefono2,:telefono3,:fax,:pago,:banco,:contacto)";
Y nada de nada, ¿Alguien sabe el motivo o que estoy haciendo mal??
Gracias de antemano |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 05 Abr, 2016 6:20 pm Asunto: |
|
|
De entrada el primer código que has puesto es incorrecto. Tal como lo está puesto:
| Código: | consulta->SQL->Text = "insert into proveedor(nif,razon_social,cp,direccion,mail,localidad,provincia,telefono,telefono2,telefono3,fax,pago,banco,contacto)";
consulta->SQL->Text = "values(:nif,:razon,:cp,:direccion,:mail,:localidad,:provincia,:telefono,:telefono2,:telefono3,:fax,:pago,:banco,:contacto)"; |
al ejecutarse el segundo SQL->Text en el query SÓLO tendrás ese trozo:
| Cita: | | values(:nif,:razon,:cp,:direccion,:mail,:localidad,:provincia,:telefono,:telefono2,:telefono3,:fax,:pago,:banco,:contacto) |
Para hacerlo en dos líneas tienes que ponerlo así:
| Código: | consulta->SQL->Text = "insert into proveedor(nif,razon_social,cp,direccion,mail,localidad,provincia,telefono,telefono2,telefono3,fax,pago,banco,contacto)";
consulta->SQL->Add("values(:nif,:razon,:cp,:direccion,:mail,:localidad,:provincia,:telefono,:telefono2,:telefono3,:fax,:pago,:banco,:contacto)"); |
Puedes ponerlo en una sola línea así:
| Código: | consulta->SQL->Text = "insert into proveedor (nif,razon_social,cp,direccion,mail,localidad,provincia,telefono,telefono2,telefono3,fax,pago,banco,contacto) values (:nif,:razon,:cp,:direccion,:mail,:localidad,:provincia,:telefono,:telefono2,:telefono3,:fax,:pago,:banco,:contacto)"); |
(Personalmente, por motivos de claridad, antes de los paréntesis me gusta poner un espacio en blanco)
Fuera de esto, si todos los campos tiene la definición correcta (String, Integer, etc.) debe funcionarte bien. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
jugado1820 Ens

Registrado: 16 Jun 2010Mensajes: 37
|
Publicado: Mie 06 Abr, 2016 3:23 pm Asunto: |
|
|
Gracias Angel por tu respuesta. La verdad que no se porque no
funcionaba. simplemente la he copiado dentro del botón, y no me
da el error de parameter not found. Funciona correctamente. La
he vuelto a reescribir de 0 la funcion, y ha funcionado, con los mismos
datos. Algo hay que se me pasaria por alto. Muchas gracias por tu
respuesta Angel. Voy a poner como queda la función, por si alguien ve
la diferencia que lo diga. Esta función que posteo es la que funciona:
consulta->Close();
consulta->SQL->Clear();
consulta->SQL->Text = "insert into proveedor(nif,razon_social,cp,direccion,mail,localidad,provincia,telefono,telefono2,telefono3,fax,pago,banco,contacto) values(:fin,:rs,:pc,:street,:email,:locali,:provi,:tlf1,:tlf2,:tlf3,:xaf,:pay,:bank,:contact)";
consulta->Params->ParamByName("fin")->AsAnsiString = nif;
consulta->Params->ParamByName("rs")->AsAnsiString = razon;
consulta->Params->ParamByName("pc")->AsAnsiString = cp;
consulta->Params->ParamByName("street")->AsAnsiString = direccion;
consulta->Params->ParamByName("email")->AsAnsiString = mail;
consulta->Params->ParamByName("locali")->AsAnsiString = localidad;
consulta->Params->ParamByName("provi")->AsAnsiString = provincia;
consulta->Params->ParamByName("tlf1")->AsAnsiString = telefono;
consulta->Params->ParamByName("tlf2")->AsAnsiString = telefono2;
consulta->Params->ParamByName("tlf3")->AsAnsiString = telefono3;
consulta->Params->ParamByName("xaf")->AsAnsiString = fax;
consulta->Params->ParamByName("pay")->AsAnsiString = pago;
consulta->Params->ParamByName("bank")->AsAnsiString = banco;
consulta->Params->ParamByName("contact")->AsAnsiString = contacto;
try{
consulta->ExecSQL();
ShowMessage("Proveedor añadido correctamente");
}
catch(...)
{
ShowMessage("Error al crear nuevo proveedor");
} |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 06 Abr, 2016 5:31 pm Asunto: |
|
|
[quote="jugado1820"Algo hay que se me pasaria por alto.[/quote]
Lo que se te pasó por alto es lo que te indicaba ayer:
| Código: | consulta->SQL->Clear();
consulta->SQL->Text = "insert into proveedor(nif,razon_social,cp,direccion,mail,localidad,provincia,telefono,telefono2,telefono3,fax,pago,banco,contacto)";
consulta->SQL->Text = "values(:nif,:razon,:cp,:direccion,:mail,:localidad,:provincia,:telefono,:telefono2,:telefono3,:fax,:pago,:banco,:contacto)"; |
Tal como lo ponías, cuando terminas de ejecutar este código en SQL->Text tendrás SÓLO values(:nif,:razon,:cp,:direccion,:mail,:localidad,:provincia,:telefono,:telefono2,:telefono3,:fax,:pago,:banco,:contacto), por lo que el error viene de que no hay dónde aplicar esos parámetros. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|