 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Alex_ Invitado
|
Publicado: Mar 11 Ene, 2005 10:19 pm Asunto: Alguien me explica el funcionamiento del ParamByName |
|
|
| Hola, estoy utilizando una TQuery para insertar fotos en mi base de datos, y veo que sería interesante pasarle un parametro, se que se utiliza esta función, pero no me aclaro muy bien su funcionamiento, se que tiene las propiedades params donde modificas el parametro y luego donde pones la sentencia SQL indicandole que deseas utilizar el parametro, pero luego su utilizacion la veo algo confusa, si alguien puede arrojar algo de luz sobre este asunto, lo agradeceria |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 12 Ene, 2005 8:46 am Asunto: |
|
|
Hola. Trataré de explicártelo. Imagina una consulta que rescate de una tabla nombre, apellidos (ambos AnsiString) y número de identificación (Integer). Puedes hacerlo así:
| Código: | Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT Apellidos, Nombre, Num_id");
Query1->SQL->Add(" FROM 'Nombres.db'");
Query1->SQL->Add(" WHERE Apellidos = '" + Edit1->Text + "'");
Query1->Prepare();
Query1->Open(); |
Siendo Edit1 un TEdit en el que introduces el campo a buscar. Si la consulta va a ser siempre la misma puedes hacer lo siguiente:
1. Define el código de la consulta, sustituyendo el campo variable por el parámetro. Puedes hacerlo en tiempo de ejecución
| Código: | Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT Apellidos, Nombre, Num_id");
Query1->SQL->Add(" FROM 'Nombres.db'");
Query1->SQL->Add(" WHERE Apellidos = :Apellidos");
Query1->Prepare();
Query1->Open(); |
o en tiempo de diseño en la propiedad SQL del elemento TQuery; en este caso SÓLO tendrías que poner la consulta. Es decir:
| Código: | SELECT Apellidos, Nombre, Num_id FROM 'Nombres.db' WHERE Apellidos = :Apellidos |
2. A la hora de ejecutarlo tienes que hacer lo siguiente:
| Código: | Query1->Close();
Query1->ParamByName("Apellidos")->AsString = Edit1->Text;
Query1->Prepare();
Query1->Open(); |
El parámetro es una variable que se define de forma que pueda ser sustituida por un valor de programa (calculado o introducido). Teien la comodidad de no tener que escribir el código de la consulta cada vez que esta se ejecuta y la pega que no vale para todas las consultas; por ejemplo, salvo error mío, en consultas de este tipo:
| Código: | SELECT Apellidos, Nombre, Num_id FROM 'Nombres.db' WHERE Apellidos LIKE :Apellidos |
a mi no me ha funcionado, dándome error.
Tienes que tener en cuenta que ParamByName "sabe" que tipo de datos estás usando; quiero decir: si buscas una cadena de texto, ParamByName tiene que ir seguido de AsString, si es un enero de AsInteger, etc. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Mie 12 Ene, 2005 5:57 pm Asunto: |
|
|
Aqui te va un link donde ya se trato este tema, espero te sirva, saludos
https://cppbuilder.es/viewtopic.php?t=7569 _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| 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.
|