Mi consulta es la siguiente como pude obtener el usuario actual de mysql 5 desde delphi para mostrarlo en un statusbar estoy utlizando delphi6 con los componentes zeos 6 y delphi 6
Muchas Gracias por su ayuda!!!
Publicado:
Sab Mar 21, 2009 12:35 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Como obtener el usuario actual de mysql
Anuncios
miguel150 escribió:
Hola a todos,
Mi consulta es la siguiente como pude obtener el usuario actual de mysql 5 desde delphi para mostrarlo en un statusbar estoy utlizando delphi6 con los componentes zeos 6 y delphi 6
Muchas Gracias por su ayuda!!!
Puedes utilizar esta consulta SQL que te devolverá el usuario actual con el que estés conectado a MySQL Server:
Código:
select current_user()
Ten en cuenta que te devolverá algo así: root@pcportatil, delante de la arroba el nombre del usuario, detrás el nombre del equipo cliente que se conecta a MySQL Server.
Si sólo quieres obtener el nombre del usuario puedes utilizar la función INSTR y la función LEFT de la siguiente forma:
Para conectar el ZQuery con MySQL es necesario un componente "ZConnection", en el ejemplo utilizamos el ZConnection1, que luego enlazamos con el ZQuery mediante la propiedad "Connection".
Publicado:
Dom Mar 22, 2009 7:06 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: usuario actual de MySQL con Delphi y Zeos
Anuncios
Si no quieres añadir los componentes ZQuery y ZConnection al formulario, puedes utilizar la siguiente función, que los crea en tiempo de ejecución, así te ahorras el tener que ponerlos en una Unit y luego tener que llamarlos:
Muchas Gracias por su repuesta lo ententare y logo te dejo saber los resultados.
Publicado:
Lun Mar 23, 2009 8:46 pm
miguel150 Buen usuario
Registrado: Feb 25, 2009 Mensajes: 6
Asunto:
ok lo entente la función y todo bien pero solo me muestra el usuario root, como ago para mustra el usuario que accesa via un login personalizado utilizado unos variables tipo string de otro formulario.
porque cuando lo llamo con este codigo me da un error Access Violation
ok lo entente la función y todo bien pero solo me muestra el usuario root, como ago para mustra el usuario que accesa via un login personalizado utilizado unos variables tipo string de otro formulario.
porque cuando lo llamo con este codigo me da un error Access Violation
Visto así, es más fácil que lo que te hemos indicado.
Si tienes un formulario de login y en este formulario el usuario introduce su nick (nombre de usuario) y su contraseña y éste es un usuario que debe existir en MySQL, no necesitas la consulta SQL que te hemos indicado, que siempre te devolverá como usuario el que utilices para la consulta. Digamos que es redundante, la función:
Siempre te devolverá "root" que es el usuario que se utiliza para la conexión de la propia función, con lo cual es "absurdo".
En tu caso, al utilizar un formulario de login, sólo tienes que guardar el valor introducido por el usuario en el campo nick (nombre de usuario de MySQL) en una variable pública para que esté disponible para el resto de los formularios de la aplicación.
Si primero creas y muestras el formulario de login y luego lo cierras y muestras el principal, el que contiene el StatusBar, te dará el error que nos comentas si desde el principal intentas acceder al "frmlogin", pues éste ya no estará en memoria, de ahí lo de "Access violation".
Como te decimos, lo que puedes hacer es tener una unidad (Unit) con las variables públicas, como la del nombre del usuario que inicia sesión en frmlogin. En el Uses del formulario frmlogin y el principal tendrás esta unidad, en el frmlogin, cuando el usuario pulse "Iniciar sesión" habrá algo así:
En el formulario "frmlogin":
Código:
uses unidadVariablesPublicas, ...
....
procedure TFormPrincipal.botonInicioClick(Sender: TObject);
begin
...
nombreUsuarioSesion := txtUsuario.text;
...
end;
...
En el formulario principal:
Código:
uses unidadVariablesPublicas, ...
...
procedure TFormPrincipal.FormCreate(Sender: TObject);
begin
StatusBar1.Panels[1].Text := nombreUsuarioSesion;
// FUNCIONES DISPONIBLES PARA TODOS LOS FORMULARIOS
// DE LA APLICACIÓN
//lee un valor booleano de un fichero INI
function leBoolINI (clave, cadena : string;
defecto : boolean) : boolean;
begin
with tinifile.create (changefileext(paramstr(0),'.ini')) do
try
result := readbool (clave, cadena, defecto);
finally
free;
end;
end;
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A