FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Resultados de Postgres y Zeos
Buenas,
Tengo una consulta Tengo un formulario de usuario y contraseña que quiero verificar a traves de la base de datos. Logré conectar a la base de datos sin problemas, y traer datos mediante el ADD y Exec a un DBGRId. Pero mi problema es el siguiente, quiero localizar al usuario ingresado (P.ej: Usuario N° 5) de cierto campo de la base de datos, y no se como traer los datos ejecutando los componentes para compararlos... Se llevarlos al DBGrid como dije, pero si quisiera traer los resultados y compararlos con lo que introdujo el usuario como podria hacerlo? Como trabajar con el resultset? Encuentro bastante pobre la documentacion que existe sobre Zeos :S y lo único que me ha salvado es este milagroso foro. Gracias |
#2
|
|||
|
|||
Hola
Para empeza te diré que entiendo muy bien tu pregunta, yo utilizo los componentes Zeos con bases de datos Firebird hace bastante tiempo .. y sí es cierto ... la documentación es bastante pobre ...
Creo que lo que quieres hacer es: 1) Guardar los usuarios y contraseñas dentro de la base de datos. 2) Dependiendo del usuario y clave que ingresa el usuario en un formulario darle acceso a cierto lugares. ¿es así? Si es así, supongamos que tienes: 1) Un formulario con el nombre FLogIn una caja de edición (edUsuario), y una caja de edición con máscara para la clave (edClave). 2) Un DataModule (que podríamos llamarle DM), con un TZConnection (lo llamamos conexion), y un TZReadOnlyQuery (que llamaremos qValida). En connection del qValida se pone Conexion, y en SQL, lo siguiente:
(suponiendo que tengas una tabla Usuarios, con campos usuario, y clave ... cada uno adaptarlo a sus necesidades) IMPORTANTE: Los componentes Zeos tienen un BUG con los parámetros, éstos deben tener un espacio adelante y otro atrás para que funcionen bien (ésto no lo leí en ningún lado ... fué más bien a fuerza de darme la cabeza contra la pared). En el DataModule:
En el FLogIn (por ejemplo): 1) Incluyes el DataModule en la cláusula uses:
2) En el evento onClick del botón OK:
Saludos y espero te sirva |
#3
|
|||
|
|||
De nuevo probando
Hola a todos
Gracias Mamaro por la respuesta, Creo que me simplificaste horas y dias de busqueda :P Me has aclarado muxas muxas dudas de todas formas.... He intentado lo que me has dicho, casi le has dado en el clavo a todo.... Pero me arroja un error de que no encuentra: "ZQuery1 Parameter 'numerovendedor' not found" Envio el código, a ver si me puedes ayudar a encontrar cual es el error!!! Código Delphi [-]function TFormPrincipal.Fase1Validar(Usuario,Clave:Integer):boolean; begin DM.ZQuery1.SQL.Clear; DM.ZQuery1.SQL.ADD('SELECT * From vendedores WHERE (numerovendedor= ' + IntToStr(Usuario) + ' ) and (passwordvendedor= ' + IntToStr(Clave) + ' )'); DM.ZQuery1.close; // nos aseguramos que la consult esté cerrada If (DM.ZQuery1.ParamByName('numerovendedor').AsInteger = Usuario) and (DM.ZQuery1.ParamByName('passwordvendedor').AsInteger = Clave) then Application.MessageBox('CORRECTO','Look', MB_OK) Else Application.MessageBox('INCORRECTO','Look', MB_OK); DM.ZQuery1.open; // aquí van las instrucciones con las que levantás los permisos // o lo que sea que quieras hacer end; En realidad lo que quiero lograr, es queme compruebe el numero del vendedor y la contraseña que seria el mismo numero, para llamarlo lo tengo asi : Código Delphi [-] Fase1Validar(StrToInt(TxtNumeroVendedor.Text), StrToInt(TxtPasswordvendedor.Text)); Aunque escribiendo esto, me doy cuenta que las conversiones estan de sobra :S Lo arreglaré para el siguiente post. En mi tabla VENDEDORES tengo: numerovendedor passwordvendedor nombrevendedor apellidovendedor y quiero lograr sacarlos ambos :S Ojalá no sea mucho el pedir, porque en verdad no se que hacer con este error Gracias |
#4
|
|||
|
|||
hola
tienes un problema con la consulta, estás tratando de darle valores a un parámetro que no existe ... ésta debería ser la consulta (o algo parecido al menos):
Los parámetros llevan dos puntos adelante (NUM y PASS), y para saber si los datos que pasaron son correctos debes abrir la consulta (para ver si algún registro concuerda con las variables pasadas). ahora bien ... ... ¿los usuarios tienen un número como password? Saludos |
#5
|
|||
|
|||
Aclaración
Para que el código que publicas quede con un formato correcto puedes utilizar los botones que están arriba a la derecha del texto cuando escribes.
El botón que tiene un dibujo igual al icono de este sitio por ejemplo sirve para poner código Delphi, el de la derecha para poner código SQL, etc. Cada botón te pone dos etiquetas: una de tipo [ALGO] y otra de tipo [/ALGO] dentro de esas dos etiquetas pones el código ... y listo. |
#6
|
|||
|
|||
Gracias!
Hey mamaro, gracias otra vez.
Soy un completo novato en bases de datos con delphi, habia programado antes haciendo miles de cosas en delphi, pero nunca trabajado con esto :P Un novato en esto, pero en bases de datos he trabajado mucho conectando de asp y php, etc. RecordCount es un comando que me serà de mucha ayuda, pero me imagino que tengo que estudiar lo fundamental de como trabajaba básicamente delphi con el odbc y ole para hacerme familiar a la estructura de zeos (esta basada y acoplada en la forma de trabajo con bd de delphi) y lo estoy haciendo, con un tutorial muy bueno de about.com con el controlador postgresql para odbc (un poco tedioso que tenga que pasar por ado, ole, odbc y recibir respuesta recien), aunque funciona a la perfeccion, diria que es el controlador mas estable de postgresql. Voy a probar con el codigo que me has escrito, ahora entiendo porque dentro del select aparece el :NUM y no ' + :NUM + ' Tengo el programa guardadito en mis pruebas alternativas con el zeos... y si, bien parece raro que la contraseña sea un nùmero Pero es un requisito para trabajar rapido en terminales donde solo funcionará el tpv, y es de exclusiva responsabilidad del usuario no equivocarse porque una venta quedaria registrada a otro nombre y por ende no calzará el cierre de caja al final del turno. En el servidor se harán los procesos mas delicados. Aunque estuve pensando y tengo el algoritmo testeado para encriptar de forma tradicional una cadena de texto y desencriptarla por crypt32. Si quieres te la envio Gracias mamaro una vez mas, te tengo noticias de nuevo :P Espero que para la proxima ya esté mas "pulido" Hey un millon de gracias man Bye |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Delphi con Postgres | FlacoNet | PostgreSQL | 11 | 15-02-2010 16:37:46 |
Cómo cerrar conexión? Delphi, Zeos y Postgres | mangels | PostgreSQL | 4 | 16-11-2007 16:00:59 |
Postgres, Zeos y Delphi 7 | quali | PostgreSQL | 3 | 15-03-2007 22:41:39 |
Delphi y Postgres | trex2000 | Conexión con bases de datos | 2 | 19-09-2006 16:23:38 |
Conexion xon Postgres | nuquen | Linux | 6 | 25-06-2003 20:33:08 |
|