PDA

Ver la Versión Completa : Ventana de Login al correr un programa


Yasnet
10-11-2008, 05:15:31
Hola nuevamente, tengo una duda.
Al correr un programa en delphi 7 usando bases de datos de mySQL me sale una ventana de login pidiendome el ususario y la contraseña.
Estoy usando ODBC y tables y datasources (nose si sea util dar esta informacion).
Mi pregunta es de si seria posible de que no me saliera esta ventana de logina cada ves q corro el programa, y como se haria?
Se los agradeceria.

Lepe
10-11-2008, 06:10:49
El TTable tiene la propiedad LoginPrompt, ponla a false y no verás el cartelito, pero debes suministrar el usuario y contraseña de alguna forma (supongo que en la cadena de conexión de ODBC).

Con el BDE se usaba el evento OnLogin, o en el TDatabase se usaba en los parámetros (propiedad params):

user maestro
password mipasss

Con ODBC no sé exactamente, pero puedes investigar por esos sitios.

Saludos

Caro
10-11-2008, 14:15:34
Hola Yasnet, cuando te creas tu origen de datos puedes asignarle el usuario y contraseña, pero si no lo haces desde ahí puedes utilizar la propiedad Params de tu DataBase y colocar su user name y password


user name=xxxx
password=xxxxx


Ahora como te dice el amigo Lepe la propiedad LoginPrompt tiene que estar en False, pero no del TTable que yo sepa no tiene esa propiedad, sino de tu TDataBase que es el que se conectara con tu origen de datos en su propiedad Alias. Y otra cosita importante es que todos tus Querys y Tables en su propiedad DataBase tienen que estar conectados a tu TDataBase y no a tu origen de datos sino te seguira pidiendo el login y Password.

Saluditos

Yasnet
10-11-2008, 19:24:37
Lo siento, nose si entendi muy bien. Ustedes sugieren que configure el TDatabase, el problema esk no tengo Tdatabase. Uso solamente Tables y Datasources.
Podrian ser mas claros por favor esk soy nuevo en esto y apenas estoy entendiendo.
Se los agradeceria.

roman
10-11-2008, 22:04:52
Entonces te conviene usar un TDatabase, ya que con él es que podrás configurar lo que te indicaron.

Vamos a suponer que tu base de datos tiene por alias "MiBase". Actualmente, tus componentes TTable apuntan a ese alias mediante la propiedad DatabaseName. Entonces, lo que tienes que hacer es:

1. Colocar un componente TDatabase
2. Asignar "MiBase" a la propiedad AliasName del TDatabase
3. Poner un valor a la propiedad DatabaseName del TDataBase, por ejemplo, "DBMiBase"
4. Cambiar la propiedad DatabaseName de tus componentes TTable para que diga "DBMiBase" en lugar de "MiBase".

De esta manera, todos tus TTable se conectarán a través del TDatabase, y ahora sí, a éste le puedes cambiar su propiedad LoginPrompt.

// Saludos

Yasnet
12-11-2008, 22:48:10
Muchas gracias a todos, ya no aparece la ventana de login gracias al Tbasetable.
Muchas gracias a todos:)

Lepe
12-11-2008, 23:07:50
Muchas gracias a todos, ya no aparece la ventana de login gracias al Tbasetable.
Muchas gracias a todos:)

Jopé la que he formado con mi fallo, no sólo lo mareé sino que además le he fundido alguna neurona :o

Saludos

lucho1981
16-11-2008, 19:06:26
Hola gente linda. Les cuento q tengo una duda enorme. Como puedo hacer para q mi form de logueo se fije si existen tanto el usuario y la contraseña? ¿y si no existe ningun usuario con ese nombre q me lo diga?
Cabe aclarar q desde mi form principal llamo al form de logueo y mi idea es q al validar el usuario recien habilitar los correspondientes items para los diferentes tipos de permisos q tengas los usuarios.

El siguiente es un ejemplo de logueo q encontre en el foro



begin
if trim(user.Text)='' then
begin
MessageDlg('Debes ingresar tu Nombre de usuario y contraseña
para continuar',mtError, [mbok], 1);
user.SetFocus;
exit;
end;

En este pedazo de codigo veo q falta un end; y en su lugar pusieron un exit; ¿porq razon es esto?
Muchas gracias por sus futuras respuestas

Caral
16-11-2008, 19:10:54
Hola
El exit es para salir del programa, osea si no ingresa el nombre o el usuario correctos, el programa se cerrara.
Pareciera que le falta un end, pero tambien parece que falta un pedazo de codigo.
Saludos

lucho1981
16-11-2008, 19:38:04
Hola
El exit es para salir del programa, osea si no ingresa el nombre o el usuario correctos, el programa se cerrara.
Pareciera que le falta un end, pero tambien parece que falta un pedazo de codigo.
Saludos

Si falta codigo, pero es q estoy haciendo mi propio programa, con mis pocos conocimientos.
este es mi codigo
begin
if (usuario.Text='')or (Pass.Text='') then
begin
MessageDlg('Debes ingresar tu Nombre de usuario y contraseña
para continuar',mtError, [mbok], 1);
usuario.setfocus;
end;
else
DM.TUsuarios.Locate('Usuario',usuario.Text,[]);
If (Dm.TUsuarios.fieldName('contraseña').Astring = pass.Text then



De encontrar el Usuario y q coincida con el pass q recien acceda y de ahi validare permisos y otras cosas.
Pero q pasa si el usuario no existe?
Por otro lado como puedo hacer para q un en un ComboBox me muestre la lista de los usuarios existentes?

Uso delphi 7 y mysq 5.0 conectado por odbc

Caral
16-11-2008, 19:43:13
Hola
1- el codigo usa un datamodule
2- si el usuario no existe retorna el foco al edit usuario.
3- no hace referencia del password
4- para que el combobox contenga a los usuarios haces una consulta sql y la añades al combobox, recorriendo la tabla.
Saludos

lucho1981
16-11-2008, 20:09:15
Tengo un Mainmenu, q contiene usuario, dentro de usuario tengo "cambio de usuario", como hago para q la propiedad enabled de "cambio de cliente" se ponga en true cuando se loguee el usuarios?

Habia pensado en algo similar a esto:

Main.Principal.MainMenu1.Items.Usuarios.cambioclave.enabled:=true;
Pero no me permite hacer referencia a lo q esta en rojo, es decir a partir de Usuarios. Con q otra forma puedo cambiar la propiedad enabled?

Muchas gracias

lucho1981
16-11-2008, 20:30:00
Tengo un Mainmenu, q contiene usuario, dentro de usuario tengo "cambio de usuario", como hago para q la propiedad enabled de "cambio de cliente" se ponga en true cuando se loguee el usuarios?

Habia pensado en algo similar a esto:

Main.Principal.MainMenu1.Items.Usuarios.cambioclave.enabled:=true;
Pero no me permite hacer referencia a lo q esta en rojo, es decir a partir de Usuarios. Con q otra forma puedo cambiar la propiedad enabled?

Muchas gracias

Cuenta de poner main, se comienza con principal, como esta el codigo abajo.
Principal.Cambioclave.Enabled:=true;