| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Maria Cdt

Registrado: 26 Abr 2010Mensajes: 6
|
Publicado: Mie 04 Ago, 2010 11:56 pm Asunto: Como hacer login |
|
|
| Hola, necesito ayuda con el codigo para realizar un Login: tengo la pantalla donde se pide ingresar usuario y contraseña pero al hacer clic en el boton Aceptar debe buscar en las tablas de Usuarios y verificar los datos. Una opcion es pasar estos datos (usuario y contraseña)como parámetros al Query, pero no logro hacerlo. Por favor, ayuda con el query. Gracias. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 06 Ago, 2010 11:02 am Asunto: |
|
|
No dices con que tipo de tablas estás trabajando. Por ejemplo, para un tabla Paradox:
| Código: | Query->Close();
Query->SQL->Text = "SELECT * FROM 'Usuarios.db' WHERE Usuario = :Usuario AND Clave = :Clave";
Query->ParamByName("Usuario")->AsString = Edit1->Text;
Query->ParamByName("Clave")->AsString = Edit2->Text;
Query->Open();
if (Query->IsEmpty())
{
ShowMessage("No existe este usuario");
return;
} |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Maria Cdt

Registrado: 26 Abr 2010Mensajes: 6
|
Publicado: Sab 07 Ago, 2010 3:54 am Asunto: Consulta de Login |
|
|
| Gracias Angel por su respuesta. La base de datos está en Access. Puede guiarme en el enlace que se hacen entre los componentes tabla, datasource y query. Para este formulario donde tengo que hacer la consulta a la tabla Usuarios, debo agregar estos componentes? En que casos se utilizan estos componentes? Gracias. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Lun 09 Ago, 2010 10:18 am Asunto: |
|
|
Con tablas Access no he trabajado desde Builder, pero si todo el proyecto trabaja contra esas tablas deberías poner los elementos de conexión en el formulario principal del mismo de forma que desde cualquier formulario que uses "veas" las tablas de la base de datos. No sé si me explico.
De todas formas, mira con el buscador en Bases de datos como conectar con una Access. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
rockman2003 Master

Registrado: 27 Ene 2004Mensajes: 202Ubicación: Madrid
|
Publicado: Mar 10 Ago, 2010 1:14 pm Asunto: |
|
|
Para poder hacer esto sin más, prueba a hacer lo siguiente:
Te creas un TADOConexion y lo configuras para que se conecte a tu BD Access
Te creas un TADOQuery y lo asocias al TADOConexion en la propiedad Conection
En la propiedad SQL del TADOQuery que has creado introduces la SELECT que utilices para validar al usuario y password:
Por ejemplo:
| Código: |
String mi_usuario,mi_password;
query->SQL->Text="select count(*) as num from usuario where usuario="+mi_usuario+" and password='"+mi_password+"'";
query->Execute();
int valor = query->FieldByName("num")->AsInteger;
if (valor>0)
ShowMessage("Usuario y contraseña correctos");
|
|
|
| Volver arriba |
|
 |
Maria Cdt

Registrado: 26 Abr 2010Mensajes: 6
|
Publicado: Jue 12 Ago, 2010 11:56 pm Asunto: |
|
|
Hola, Gracias rockman2003 por tu respuesta. Paso a contarte los pasos:
1) Realice la conexión de la base de datos, desde el panel de control-Herramientas administrativas- Origenes de datos OBDC- en la solapa DNS de sistema en la opción Agregar indico un alias para la base de datos e indico la ruta.
2) Luego en el formulario agregué los componentes TADOCONNECTION (en la propiedad ConnecctionString en Build selecciono el alias de la base de datos) y TADOQUERY (en la propiedad Connection lo enlazo a ADOConnection).
3) Agregue un botón Aceptar y al hacer doble clic inicia la consulta este es el código:
String v_usuario, v_contrasenia;
v_usuario=Edit1->Text;
v_contrasenia=Edit2->Text;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text="select count(*)as num from usuarios where usuario="+v_usuario+
" and contrasenia="+v_contrasenia+" ";
ADOQuery1->Open();
int valor=ADOQuery1->FieldByName("num")->AsInteger;
if (valor>0) {
ShowMessage("Usuario y contraseña válidos");
}
else
{
ShowMessage("Usuario y contraseña INCORRECTOS, ingrese nuevamente");
}
No me queda claro que es lo que debo agregar en la propiedad Sql del Adoquery1, ya que al código lo ejecuto al hacer clic en el botón Aceptar.
La compilación no da errores. Pero al ejecutarlo me sale el siguiente error: ” ....Controlador ODBC Microsoft Access pocos parámetros. Se esperaba 1”.
Si puedes ayudarme te lo agradezco. Saludos cordiales. |
|
| Volver arriba |
|
 |
rockman2003 Master

Registrado: 27 Ene 2004Mensajes: 202Ubicación: Madrid
|
Publicado: Vie 13 Ago, 2010 6:56 am Asunto: |
|
|
Hola Maria,
Al crear el ADOConnection, fijate si el check "Guardar la contraseña" lo has marcado.
Si no tiene contraseña, tambien marca Contraseña en Blanco |
|
| Volver arriba |
|
 |
Maria Cdt

Registrado: 26 Abr 2010Mensajes: 6
|
Publicado: Mar 17 Ago, 2010 1:20 am Asunto: |
|
|
Hola, logre solucionar el error, la consulta sql quedó de la siguiente manera y funciona:
Query1->SQL->Text= "select count(*)as num from usuarios where usuario='"+v_usuario+"' and contrasenia='"+v_contrasenia+"' ";
Faltaba la comilla simple '.
Muchas gracias. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 17 Ago, 2010 10:56 am Asunto: |
|
|
| Maria escribió: | Hola, logre solucionar el error, la consulta sql quedó de la siguiente manera y funciona:
Query1->SQL->Text= "select count(*)as num from usuarios where usuario='"+v_usuario+"' and contrasenia='"+v_contrasenia+"' ";
Faltaba la comilla simple '.
Muchas gracias. |
Por eso te sugería yo usar parámetros. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
vrodriguez Lt

Registrado: 01 Abr 2005Mensajes: 77
|
Publicado: Jue 02 Sep, 2010 10:19 pm Asunto: Como hacer login |
|
|
Yo creo que Angel, dejo claro el principio KISS.
Att
Vrodriguez |
|
| Volver arriba |
|
 |
|