Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Ya que no mencionas que componentes usas para conectarte, supongo que se trata del BDE, así que lo que toca hacer es poner la propiedad loginprompt del TDatabase en falso, y luego establecer por código los parámetros 'UserName' y 'password' (podrían llamarse diferentes, mirá cómo los nombra al usar los parámetros default del driver.

La propiedad Params es un TStrings, así que establecer el valor es tan sencillo como:

Código Delphi [-]
Database1.params.Values['UserName'] :=  'jose';

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #2  
Antiguo 12-01-2006
gallirto gallirto is offline
Registrado
 
Registrado: ene 2006
Posts: 7
Poder: 0
gallirto Va por buen camino
Question

Hola jachguate

Pero con esa instruccion estoy asignando los nombres??...
o verificando un nombre ya existente no?'
Pero si quiero que cheque si existe ese usuario...si esta, que se conecte a la BD y siga....y si no que mande mensaje de error diciendo que no es un usuario valido...ahi como le harias??

Gracias!!!
Responder Con Cita
  #3  
Antiguo 12-01-2006
reina reina is offline
Miembro
 
Registrado: ago 2005
Ubicación: Capital Federal-La Plata (Bs As)
Posts: 147
Poder: 22
reina Va por buen camino
..a ver si te sirve

Deberias hacer la ventana de la autenticación de la bd.. tu mismo..en un form splash(este lo deberias poner que se abra en la unit principal) o algo asi antes que se cargue la aplicacion ..y preguntar ahi el nombre del usuario y la contraseña..luego tratar de asignarle a la bd..ese usuario y contraseña si no existe alli esta tirara un excepcion, por ejemplo:

DataBase.Connected:=false;
DataBase.Params.Clear;
DataBase.Params.Add('user_name=nombreusuario');
DataBase.Params.Add('password=pass');
DataBase.LoginPrompt:=false;
DataBase.Connected:=true;

Esto lo puedes poner dentro de un try....except de ahi la podrias levantar hacia donde llamaste al form splash con un mensaje como que el usuario no existe y no dejar que la aplicacion corra..bueno espero que hayas entendido o al menos te orientes en algo, saludos!

LA PATRIA SERA LIBRE!
Responder Con Cita
  #4  
Antiguo 12-01-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Tomando la idea de reina:

Código Delphi [-]
  DataBase.Connected:=false;
  DataBase.Params.Clear;
  DataBase.Params.Add('user_name=nombreusuario');
  DataBase.Params.Add('password=pass');
  DataBase.LoginPrompt:=false;
  try
    DataBase.Connected:=true;
  except
    on EDatabaseError do
    begin
      ShowMessage('Error al autenticar usuario!');
      Application.Terminate;
    end;

Ahora, ya es cosa tuya si queres proveer un mecanismo para que el usuario reintente varias veces (o indefinidas veces).

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 13-01-2006
gallirto gallirto is offline
Registrado
 
Registrado: ene 2006
Posts: 7
Poder: 0
gallirto Va por buen camino
Question No quiere funcionar

Hola chicos...tomando las ideas que me aportaron, me di a la tarea de inmediatamente empezar a trabajar en eso...
Estuve tratando de varias maneras y al parecer hay algo que me esta fallando...
primero lo probe en el sistema que tengo ya hecho y no quiso...
entonces despues cree una nueva aplicacion para empezar de cero...
puse un componente de bd, un datasource y una tabla...las di de alta, porque ya tenia dado el odbc de mysql...y listo no hubo problema...
entonces de algo sencillito, quise hacer que funcionara la autenticacion, pero que creen...pos que sigue sin funcionar...me marca el siguiente error, espero que puedan ayudarme a resolverlo...

Project sistema.exe raised exception class EDBEngineError with message
'Key violation [TCX]ÑMyODBC] Access denied for 'root'@localhost (using password: NO)
Alias: sistema. Process stopped. Use step or run to continue

Trate de cambiar el EDatabaseError en la exepcion y ponerle EDBEngineError, pero pues tampoco...estuve buscando algun ejemoplo pero tampoco...asi que regreso con ustedes para ver si me pueden ayudar!!!...se los agradecere muchisisisisisimo!!
De antemano Gracias!!
Responder Con Cita
  #6  
Antiguo 13-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El ejemplo de jachguate debe funcionar bien excepto que donde dice user_name debe decir user name, es decir, va un espacio en lugar del caracter de subrayado.

// Saludos
Responder Con Cita
  #7  
Antiguo 14-01-2006
gallirto gallirto is offline
Registrado
 
Registrado: ene 2006
Posts: 7
Poder: 0
gallirto Va por buen camino
Question

Holas...
Ya POR FIN quiso funcionar...YUPI!!!
ya autentifica los usuarios y sus contraseñas...
pero ahora el problema que tengo ahora, es que no entra a la exepcion...es decir...si ponen mal el nombre de usuario o la contraseña, no manda el mensaje de error...vuelve a salir el mensaje de:

Project sistema.exe raised exception class EDBEngineError with message
'Key violation [TCX]ÑMyODBC] Access denied for 'root'@localhost (using password: YES) Alias: sistema. Process stopped. Use step or run to continue

que creen que pueda ser???

el codigo que tengo es el siguiente:

DataBase1.Connected:=false;
DataBase1.Params.Clear;
DataBase1.Params.Add('user name='+edit1.text);
DataBase1.Params.Add('password='+edit2.text);
DataBase1.LoginPrompt:=false;
try
begin
dataBase1.Connected:=true;
label1.Caption:='SI ENTRO';
end;
except
on EDatabaseError do
begin
ShowMessage('Error al autenticar usuario!');
Application.Terminate;
end;
end;

De antemano...Gracias!!!
Responder Con Cita
  #8  
Antiguo 14-01-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cita:
Empezado por roman
El ejemplo de jachguate debe funcionar bien excepto que donde dice user_name debe decir user name, es decir, va un espacio en lugar del caracter de subrayado.

// Saludos
Por eso había dicho ya:
Cita:
Empezado por jachguate
(podrían llamarse diferentes, mirá cómo los nombra al usar los parámetros default del driver.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
La increíble tecla F1 en Delphi dec Varios 1 31-08-2005 22:26:45
Sobre las rxlibs y la ayuda... Elfoscuro Varios 2 25-05-2005 21:38:18
Ayuda Con Instalacion De Archivos De Ayuda Legolas Varios 1 01-12-2003 14:48:03
Como hago un archivo de ayuda? Ricsato Varios 2 29-10-2003 21:03:53
Ayuda Esau OOP 2 20-09-2003 00:10:57


La franja horaria es GMT +2. Ahora son las 17:57:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi