Ir al contenido


Foto

[RESUELTO] niveles de acceso a una aplicacion


  • Por favor identifícate para responder
38 respuestas en este tema

#21 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 14 enero 2010 - 12:49

No estoy muy seguro, pero creo que cuando se trata de SQL Server, los parámetros deberían identificarse como @NombreParametro. *-), a pesar de que puedan aceptar el formato :NombreParametro.

Saludos,
  • 0

#22 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 14 enero 2010 - 02:08

bueno puse los dos puntos y andubo...nada mas que ahora cuando pongo el usuario y contraseña siempre me tira que la clave es invalida  :sad:

asi quedo el codigo


delphi
  1. procedure TFLogin.BtnOkClick(Sender: TObject);
  2. begin
  3.     LoginOK := False;
  4.   ADLogin.Parameters.ParamByName('nom').Value:= EUsuario.Text;
  5.   ADLogin.Active:= True;
  6.   EUsuario.Text:= ADLogin.Fields[0].AsString;
  7.   If ADLogin.RecordCount < 1 then
  8.     Begin
  9.       Cuenta := Cuenta + 1;
  10.       MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
  11.       EUsuario.Text := '';
  12.       EClave.Text := '';
  13.       ADLogin.Active := False;
  14.       If Cuenta = 3 then Close;
  15.     end
  16.   else
  17.       If ADLoginpass.AsString = EClave.Text then
  18.         Begin
  19.           LoginOk := True;
  20.           Usuario := ADLoginlogin.AsString;
  21.           Acc:= ADLoginacceso.AsString;
  22.           ADLogin.Active := False;
  23.           principal:=principal.Create(self);
  24.           try
  25.           FLogin.Visible:= False;
  26.          
  27.           principal.ShowModal;
  28.           finally
  29.           principal.Free;
  30.           end;
  31.           Close;
  32.         end
  33.     else
  34.         Begin
  35.           Cuenta := Cuenta + 1;
  36.           MessageDlg('Clave Inválida',mtError, [mbOK], 0);
  37.           EClave.Text := '';
  38.           ADLogin.Active := False;
  39.           If Cuenta = 3 then Close;
  40.         end;
  41.  
  42. end;



cual es la diferencia entre que ste codigo ste en 0 o 1?



delphi
  1. EUsuario.Text:= ADLogin.Fields[0].AsString;


0 apunta a login y 1 a pass?
  • 0

#23 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 14 enero 2010 - 02:59

Que "0" le corresponde al primer campo de la tabla y "1" al segundo campo de la misma tabla y así sucesivamente.

Saludos.
  • 0

#24 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 14 enero 2010 - 07:44

Hola
Pues segun entiendo, la clave es invalida, eso quiere decir dos cosas:
1-No es la clave correcta
2-No encuentra el dato en la bd.
Saludos
  • 0

#25 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 14 enero 2010 - 08:16

bueno...despues d probar...habia puesto los usuarios igual que sus contraseñas
es decir... usuario juan..pass juan  y asi pepe pepe
y le cambie las contraseñas y antubo .... no entiendo...alguna idea?
  • 0

#26 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 14 enero 2010 - 08:20

Hola
Pues no tiene logica. :s
Si busca en la tabla, pueden ser exactos, que no pasaría eso.
Es raro.
Saludos
  • 0

#27 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 15 enero 2010 - 08:51

si la verdad que muy raro..la verdad no tengo idea  :p 

me consulta es la siguiente....

1-por cada form que yo haga para trabajar con las distintas tablas(usuarios,articulos,negocios) de la Base de Datos tengo q crear un ADDOCONECTON? o se puede mantener uno en general para todo el sistema de que despues lo demas componentes hagan referencia  a ese addoconection?

es decir..en algunos programas hechos en delphi; que stoy usando como ejemplo, definen un archivo .txt
en dond sta la direccion de la base de datos..pero la verdad nose como funciona...o como el sistema trabaja con ese archivo...
yo stoy usando SQLSERVER...seria lo mismo? a simple vista me parece que no...

muchas gracias!  :tongue:
  • 0

#28 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 15 enero 2010 - 08:58

Eso que comenta se llaman Achivos INI de la unidad inifiles de delphi que son archivos de texto donde contienen las configuraciones de un sistema.
  • 0

#29 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 15 enero 2010 - 11:18

gracias enecume...hize un DataModuley ahi puse un adoconecction y lo enlace con la base sqlserver ....todo esto siguien el ejemplo que puso nuestro amigo Caral en alguno de sus hijos en ste foro....y tambien otro ejemplo que alguien publico  llamado  BARINAS....particularmente estoy usando el formulario Usuarios de ese sistemita(BARINAS) bueno la cuestion es que todo anda bien....salvo por un detalle  :angel: ... no hize el archivo .ini en dond se encuentra el path de la BD porq la verdad nose como se manejan las paths de SQLSERVER ni tampoco defini el evento create en el datamodule

la primera vez que hizo la coneccion con la base de datos me pidio  un usuario y contraseña para conectarse con la BD sqlserver y le puse usuario "sa" y pass "sa" ,que fue un usuario que yo defini en los permisos de la base de datos...para que el usuario "sa" pueda usar la BD "indice" de SQLSERVER se entiende?
y andubo perfecto...pero ahora cada vez que ejecuto para probar el programa me tira un mensaje
"Missing conection or ConecctionString" y le doy OK y despues inicia la aplicacion de modo normal...alguna idea??  :embarrassed:
  • 0

#30 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 15 enero 2010 - 11:24

Saludos amigo,

En sql server no se define un Path de base de datos, lo que se hace es definir una cadena de conexión que le indica a ADO el nombre del servidor, el usuario, su password y la base de datos a utilizar.

Para hacerlo debes darle click en la propiedad conecctionstring del AdoConection y te aparecerá el asistente.

Saludos
  • 0

#31 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 15 enero 2010 - 11:55

hola polirrubo gracias por tu ayuda...bueno ...el adoconection sta en un datamodule...eso tendra q ver en algo?
bueno stoy usando dos addoconection ...uno que sta en la ventanita de login y el otro en el datamodule? sta bien asi? o tendria q quedar solo con el de datamodule?
  • 0

#32 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 15 enero 2010 - 12:48

hola polirrubo gracias por tu ayuda...bueno ...el adoconection sta en un datamodule...eso tendra q ver en algo?
bueno stoy usando dos addoconection ...uno que sta en la ventanita de login y el otro en el datamodule? sta bien asi? o tendria q quedar solo con el de datamodule?



No amigo, no importa donde estén los adoconnection. podrías copiar la propiedad Connection string de ambos componentes y pegarla aquí? para tener una idea más clara del problema. :)



  • 0

#33 kafastoforman

kafastoforman

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 277 mensajes
  • LocationMexico D.F.

Escrito 15 enero 2010 - 01:42


hola polirrubo gracias por tu ayuda...bueno ...el adoconection sta en un datamodule...eso tendra q ver en algo?
bueno stoy usando dos addoconection ...uno que sta en la ventanita de login y el otro en el datamodule? sta bien asi? o tendria q quedar solo con el de datamodule?



No amigo, no importa donde estén los adoconnection....



Pues no estoy tan seguro, por que si dices que una esta en la vetana de login ha de ser por que el datamodule se crea hasta despues de que te logeaste, y si intentas hacer uso del adoconnection que esta en el datamodule, te regresara un accesviolation, supongo que por eso estan esos dos adoconnections, ahora lo que yo puedo imaginar, es que uno de los adoconnection, no tiene definida su propiedad connectionstring, si es asi, te recomendaría que le pusieras la mismas propiedades a los dos adoconnections.

Saludos

  • 0

#34 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 15 enero 2010 - 04:32

hola gente ...bueno saque el adoconection del la ventanita de login y me qdo solamente el que sta en datamodule..usando el asistente para la configuracion me quedo asi :
Imagen Enviada

conectionString= Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=indice;Data Source=ABRAHAM\SQLEXPRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ABRAHAM;Use Encryption for Data=False;Tag with column collation when possible=False


y en el asistente le puse "Usar seguridad integrada con WinNT"
pero cuando le doy RUN o PLAY aun asi siguen tirando un mensaje
Imagen Enviada
despues le doy OK y me marca sta linea de codigo


delphi
  1. program Indice;
  2.  
  3. uses
  4.   Forms,
  5.   Unit1 in &#39;Unit1.pas&#39; {principal},
  6.   UFLogin in &#39;UFLogin.pas&#39; {FLogin},
  7.   UUsuarios in &#39;UUsuarios.pas&#39; {FUsuarios},
  8.   UDataModule2 in &#39;UDataModule2.pas&#39; {DataModule2: TDataModule};
  9.  
  10. {$R *.res}
  11.  
  12. begin
  13.   Application.Initialize;
  14.   Application.CreateForm(TFLogin, FLogin);
  15.   Application.CreateForm(Tprincipal, principal);
  16.   Application.CreateForm(TFUsuarios, FUsuarios);
  17.   Application.CreateForm(TDataModule2, DataModule2);        {ESTA LINEA ME MARCA}
  18.   Application.Run;
  19. end.


y despues me aparece el mensaje "Missing conection or conectionString" y ahi le doy Ok
y me arranza la aplicacion con la ventanita de login , le pongo el usuario y pass y arranca el sistemita
y puedo acceder a los fomrs y usar los adotable con los Dbnavegator para ver las tablas y anda todo bien  :sad:

alguna sugerencia? sera q tengo q tocar algo en el SQLSERVER managment?
muchas gracias a todos
  • 0

#35 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 15 enero 2010 - 04:36

Eso es porque intentas conectarte a la Base de Datos antes de que el Datamodule se crea, como te dijo Kafastoforman como lo tenías estaba bien, pero que en una de los dos ADOConnection tenía la cadena de conección mal :D
  • 0

#36 kafastoforman

kafastoforman

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 277 mensajes
  • LocationMexico D.F.

Escrito 15 enero 2010 - 04:39

Ese error tambien aparece, cuando el adoquery o el adostoredproceudure, no tiene nada en su propiedad connection, y si es asi, solo asignale el adoconnection que configuraste. tal vez sea eso.

Saludos
  • 0

#37 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 15 enero 2010 - 04:59

si che..tenian razon..cambien de lugar la creacion del modulo y andubo como piña :p

gracias..ya ddespues lo molesto con otras cosas mas...stoy aprendiendo y sta bueno delphi..hehehe

un abrazo amigos  :smiley:
  • 0

#38 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 15 enero 2010 - 05:04

Hola,
Tengo entendido que el datamodule debe crearse primero ;)... y si es así (corríjanme por favor), deberías mover la línea:



delphi
  1. Application.CreateForm(TDataModule2, DataModule2);



Del .pdr, al comienzo, después de Initialize:



delphi
  1. Application.Initialize;
  2. Application.CreateForm(TDataModule2, DataModule2);
  3. ...



Saludos,
  • 0

#39 abraham85

abraham85

    Advanced Member

  • Miembros
  • PipPipPip
  • 128 mensajes

Escrito 15 enero 2010 - 05:24

si Delphius eso hize y andubo.. ;)mucahs gracias..
ahora mi consulta es la siguiente:  :)
yo en el Modulecreate no le puse nada...ningun archivo INi ni nada d eso....
eso afecta en algo el rendimiento con la Base de datos? ^o|

hay alguna manera de hacer bonitos los forms o patrones de diseño para los forms? hehehehe
hacer los forms me salen feos...
o nose hay alguan manera de mejorar el aspecto de la aplicacion cambiandoles el
aspecto? en java tenia para modifcar el LookAndFeel y con un paquete cambiana el aspecto
de toda la aplicacion..botones, mensajes, etc etc

un abrazo! :tongue:

  • 0




IP.Board spam blocked by CleanTalk.