Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Alta de Nuevo usuario ayuda (https://www.clubdelphi.com/foros/showthread.php?t=90453)

cristian22 12-06-2016 23:14:34

Alta de Nuevo usuario ayuda
 
Hola buenas tardes estube desarrollando una aplicacion de delphi la cual necesito dar de alta a un nuevo usuario. la aplicacion la desarrolle usando delphi 2010 y componentes query de Zeos para la conexion y consulta a la base de datos de mysql
Bien tengo creado el formulario en el cual dare de alta a los usuarios me funciona bien pero surge un prolema. Quiero restringuir que cuando se de alta a un nuevo usuario si el nombre del mismo esta en uso diga un mensaje que ya es existente para eso utilizo una consulta con un count para que me traiga la cantidad de usuarios existentes y comparar si en dicha cantidad hubo coencidencia, dejo el codigo que desarrolle.



Código Delphi [-]
begin
fModulo.qCuentasAux.close;
fModulo.qCuentasAux.SQL.clear;
fModulo.qCuentasAux.SQL.Text:= 'select count(*) as Cantidad from cuentas where cuentas.usuario ='+quotedstr(eUsuario.Text);

   fmodulo.qCuentasAux.Prepare;
 fModulo.qCuentasAux.Open;
 if not fmodulo.qCuentasAux.IsEmpty then
 begin
   if fmodulo.qCuentasAux.FieldByName('Cantidad').AsInteger=0 then
   begin
   fModulo.qCuentas.ParamByName('usuario').Value:= eUsuario.Text;
fModulo.qCuentas.ParamByName('contrasenia').Value:= eContrasenia.Text;
     fmodulo.qCuentas.Post;
     fmodulo.qCuentas.Close;
   end;  
 end
  else
  showmessage('Usuario Existente');
end;
end;

desde ya muchas gracias

Neftali [Germán.Estévez] 13-06-2016 10:02:23

Hola y bienvenido a los foros.

Antes de nada, comentar que no dices nada del problema o error que tienes. Has explicado lo que necesitas, has puesto el código, pero te falta la pregunta.

Estás comprobando cosas por duplicado, ya que si el nombre del usuario es clave y no se puede repetir, el IsEmpty y preguntar si ha encontrado alguno (Cantidad > 0) son redundantes, De todas formas, eso no te debería hacer fallar nada.

Por otro lado, si no existe el usuario, a la hora de insretarlo, estás utilizando código que mezcla, inserción normal, con inserción SQL.
No veo que SQL tienes en fModulo.qCuentas.

Si es algo como esto...

Código SQL [-]
INSERT INTO USUARIOS (usuario, contrasenia) VALUES (':usuario, :contrasenia')

En lugar del Post, prueba a realizar un Exec o ExecSQL (o similar dependiendo delos componentes que uses).

Código Delphi [-]
if vfmodulo.qCuentasAux.FieldByName('Cantidad').AsInteger=0 then begin     
   fModulo.qCuentas.ParamByName('usuario').Value:= eUsuario.Text;
   fModulo.qCuentas.ParamByName('contrasenia').Value:= eContrasenia.Text;

   fModulo.qCuentas.Exec;
  o
   fModulo.qCuentas.ExecSQL; 

   fmodulo.qCuentas.Close;
end;


La franja horaria es GMT +2. Ahora son las 13:43:00.

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