Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Alguien me explica el funcionamiento del ParamByName

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Alguien me explica el funcionamiento del ParamByName Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.