Ir al contenido


Foto

Ya comenzamos


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

#1 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 03 abril 2009 - 10:33

Ahora si

Si alguien tiene un libro que me pueda facilitar para estudiarle el fin de semana
ya estoy viendo los detalles del diseño etc etc

Ahora si alguien me puede decir como conecto a la base de datos ??

tengo que conetar a MySql
para comenzar a hacer cosillas

Root


  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 03 abril 2009 - 10:43

Ahora si

Si alguien tiene un libro que me pueda facilitar para estudiarle el fin de semana
ya estoy viendo los detalles del diseño etc etc

Ahora si alguien me puede decir como conecto a la base de datos ??

tengo que conetar a MySql
para comenzar a hacer cosillas

Root


Tanto como un libro no conozco, pero esencialmente para la conexión a la Base de Datos necesitas 3 cosas (que es como yo lo harí­a...):

1. Descargar e instalar el driver de MySQL para el ODBC puede ser desde aquí­
2. Configurar un DSN para la conexión: ayuda
3. Utilizar componentes ADO desde Delphi (TADOConnection, TADOQuery  y TADOTable)

Puedes comenzar y en la medida que surjan dudas con gusto te las ampliamos  :p

Saludos,

P.D. Aclaro que no es la única manera de hacerlo, insisto, es como yo lo he hecho...  :D


  • 0

#3 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderadores
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 03 abril 2009 - 11:44

Hola Root

Es habitual recomendar este libro para comenzar La cara oculta de Delphi 4. Apesar de que se trata de una versión muy vieja de Delphi, algunos temas siguen vigentes como son el manejo de componentes para acceso a datos (rejillas, listas desplegables, cajas de edición, etc).

Puedes complementarlo con lo que te ha recomendado Fenareth para conectarte a MySql.

[Edito:  Ya veo que lo que buscas es información especí­fica acerca de conexión con MySql y no propiamente de Delphi. Siendo así­, entonces ignora esta respuesta ]


Saludos
  • 0

#4 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 03 abril 2009 - 12:40

ok entonces a ver

por ejemplo voy a hacer una ventana de acceso
ya saben user y pass el user lo kiero poner en un Tcombobox
y el pass en un Tedit necesito cuatro querys

uno para que haga un conteo de los usuarios que me de un numero "N"

luego mediante un loop valla agregando al listado
de usuarios y pss un additem al Tcombobox
un numero "N" de veces cuando "N"  es el conteo de usuarios

uno que recupere el listados de los users

Eso en el cargado de la pagina

luego mediante un TButton
que tome el nombre del usuario del Tcombobox
que lo busque en la base y que me responda con el pass

de hay evaluar si es = cargue otra ventana y descargue esta,
ELSE
msgbox que diga looser no te sabes ni tu password

Esta bien mi idea o esta demasiado LOCA

Se que es mucho pedir pero pss en base a esto ya me puedo dar una idea de como estructurar las consultas siguientes a la base de datos


  • 0

#5 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 03 abril 2009 - 12:53

En realidad no hay necesidad de utilizar tantos Querys  :)... con uno basta y sobre ese mismo puedes generar tantas consultas como sean necesarias: una para el cargado de usuarios en tu TComboBox y otra para la búsqueda y comparación del password escrito con el almacenado en la BD...

Si utilizas la propiedad Text de SQL es cosa de que sobreescribas la sentencia anterior con una nueva, si no, tendrí­as que limpiar primero la consulta y después asignarle otra sentencia, pero en ambos casos lo haces con un solo TQuery...

Yo sugerirí­a que en al mostrar tu formulario de acceso ejecutes la primera consulta para que cargue a todos los usuarios.

Después de que se ha seleccionado al usuario que ingresará y hasta después de que se ha escrito un password, ejecutar la consulta de comparación entre ambos valores, ésto podrí­a ser ejecutado en el botón de acceso que mencionas...

Espero haberme explicado  :$, si no, pregunta con confianza...

Saludos  :D


  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 03 abril 2009 - 01:03

Hola.

Para llenar el ComboBox con el nombre del usuario puedes usar el objeto TDBLookupComboBox.

Pegas un componente Query (si usas ADO serí­a ADOQuery) y en su propiedad SQL escribes esto.



sql
  1. SELECT * FROM Usuarios



Pegas un componente TDataSource y un componente TDBLookUpComboBox que están en el tab DataControls.

El DataSource1 lo ligas al ADOQuery1 en su propiedad DataSet.

En el DBLookUpComboBox1 asignas las propiedades

ListSource = DataSource1
KeyField = Campo llave, puede ser el mismo campo usuario
ListField = Campo que se mostrará, usuario

Y ya está listo para mostrar la lista de usuarios en el combobox.

Salud OS

  • 0

#7 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 03 abril 2009 - 01:08

ok
la idea andava herrada
como dicen
mucho $·&%$%/ brinco en un terreno tan planito

pero la pregunta sigue idem

como le digo que haga el query
digo la sentencia de sql seria mas o menos asi
select usuario from usuario
pero como le digo este es el query y el resultado
ponlo como los items



  • 0

#8 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 03 abril 2009 - 01:09

Hola
No se, lo veo desde mi punto de vista (novato), pero No es demasiado para algo tan sencillo?.
Me parece que sobran muchas cosas. :D
Saludos
  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 03 abril 2009 - 01:17

ok
la idea andava herrada
como dicen
mucho $·&%$%/ brinco en un terreno tan planito

pero la pregunta sigue idem

como le digo que haga el query
digo la sentencia de sql seria mas o menos asi
select usuario from usuario
pero como le digo este es el query y el resultado
ponlo como los items




delphi
  1. var i: integer;
  2. begin
  3. Query1.Close;
  4. Query1.SQL.Clear;
  5. Query1.SQL.Text := 'select usuario from users';
  6. Query1.Open;
  7.  
  8.   for i := 0 to Query1.Recordcount -1 do
  9.     ComboBox1.Item.Add(Query1usuario.AsString);
  10.  
  11. end;



Lo hice al vuelo, puede que tenga errores.

Saludos.

  • 0

#10 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 03 abril 2009 - 01:26

Hola
Yo lo harí­a así­:


delphi
  1.   AdoQuery1.SQL.Text := 'Select CodUsuario From Usuarios WHERE Activo =True';
  2.   AdoQuery1.Active := True;
  3.   While not AdoQuery1.Eof do
  4.   begin
  5.       Combobox1.Items.Add(AdoQuery1.Fields[0].Text);
  6.       AdoQuery1.Next;
  7.   end;
  8.   AdoQuery1.Active := False;


Por lo menos la primera parte.
Saludos

  • 0

#11 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 03 abril 2009 - 04:15

ok ya quedo esa parte
ya me recupera los nombres de usuarios

ahora la pregunta es
como recupero el pass y lo asigno a una variable ???

Asegun yo va mas o menos asi


delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var user : string;
  3. var pass : string;
  4. var nombre :string;
  5.  
  6. begin
  7. IF
  8.   ComboBox1.Text = 'Usuario'
  9. Then
  10.   Application.MessageBox(
  11.     pchar(  ''
  12.     +#13#10+'Selecciona'
  13.     +#13#10+'un usuario'),
  14.     pchar(' Error '),
  15.     0+16+0+4096)
  16.  
  17. else
  18.   if
  19.     Edit1.Text = 'Contraseña'
  20.   Then
  21.     Application.MessageBox(
  22.     pchar(  ''
  23.     +#13#10+'Por favor ingresa'
  24.     +#13#10+'  Tu password'),
  25.     pchar(' Error '),
  26.     0+32+0+4096)
  27.   Else
  28. // aqui ago el query para verificar el password//
  29.   AdoQuery1.SQL.Text : = 'SELECT usuario.usuario, usuario.nombre, usuario.`password` FROM usuario WHERE usuario.usuario =  'user' ' ;
  30.   AdoQuery1.Active := true ;
  31.   while not AdoQuery1.eof do
  32.   begin
  33.     IF
  34.  
  35.  
  36.   end;
  37.  
  38.  
  39.   END ;
  40.  
  41.  
  42.  
  43. procedure TForm1.FormCreate(Sender: TObject);



Espero no estar tan errado


  • 0

#12 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 03 abril 2009 - 06:05

Hola
Lo mio no es mysql, pero esto te servirá de ejemplo, revisalo.
Es un simple login con combobox. :D
Saludos
Usuario...  clave
Caral ...    car
arroyoj ...  root

Archivos adjuntos

  • Archivo adjunto  402_.zip   361,99KB   2 descargas

  • 0

#13 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 07 abril 2009 - 09:47

Ok
ya la larte del login y me quedo " "
me falta agregar la funcion
GOTO
para que cuendo mande errores me regrese al principio de la funcion
y ahora ya solo falta el detalle
de seguir con el programa
Van a decir que soy un burro  :
pero
no me queda la sentencia GOTO y no puedo hacer el load unit2 ; unload unit1 ;
me pueden dar una pista ???


  • 0

#14 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 07 abril 2009 - 10:01

Hola Arroyoj, ¿por casualidad deseas que luego de validar un usuario en el login se abra una forma y cierre el login?.

Saludos.
  • 0

#15 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 07 abril 2009 - 10:13

Hola

El funcionamiento general del GOTO es este:



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. label etiqueta;
  3. begin
  4. etiqueta:
  5.   //Has algo
  6.   if A = B then
  7.      GOTO etiqueta
  8. end;



Pero seria bueno que nos dijeras que es lo que pretendes hacer, el GOTO es algo que no es muy común usar en la actualidad.

Salud OS
  • 0

#16 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 07 abril 2009 - 10:32

En efecto quiero que cuando lo valide al usuario descargue un formulario y se cargue otro.
hay no se si este en lo correcto pero es que quiero en el formulario de acceso poner un contador de tiempo, por eso la idea es que no lo cierre, para que cuando cierre el programa me haga una anotación en la base de datos con la hora del cierre y el tiempo que " " trabajo el operador sobre el sistema.

y la función goto digo la idea es si no esta correcto el usuario que lo mande al inicio de la función o que es lo que recomiendan ???

digo creo lo mas común cuando programaba to era el END para terminar la función

digo se aceptan sugerencias
nomas al final le pongo en los créditos del programa
le pongo
TOOOODA la comunidad Del & '3.1416' Access


  • 0

#17 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 07 abril 2009 - 10:38

En efecto quiero que cuando lo valide al usuario descargue un formulario y se cargue otro.


Quiero entender que lo que quieres es que se cierre la ventana de LogIn y cargue el programa ???

hay no se si este en lo correcto pero es que quiero en el formulario de acceso poner un contador de tiempo, por eso la idea es que no lo cierre, para que cuando cierre el programa me haga una anotación en la base de datos con la hora del cierre y el tiempo que " " trabajo el operador sobre el sistema.


Para esto lo que yo sugiero es crear una tabla donde tengas numero de usuario y fecha/hora y así­ tendrás cuando inicio y cuando cerro la sesión, después se harí­a el calculo de tiempo del usuario conectado.

y la función goto digo la idea es si no esta correcto el usuario que lo mande al inicio de la función o que es lo que recomiendan ???

digo creo lo mas común cuando programaba to era el END para terminar la función

digo se aceptan sugerencias


Esto creo que está ligado con el primer parrafo, confirma si estoy entendiendo correctamente para poder ayudarte mas.

nomas al final le pongo en los créditos del programa
le pongo
TOOOODA la comunidad Del & '3.1416' Access


Seria un honor aparecer en los crédito de un sistema :)

Salud OS
  • 0

#18 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 07 abril 2009 - 12:40

sip
lo que quiero es que se cierre el log in y que se cargue el programa.
ok la idea de la tabla es mejor asi consumo menos recursos del sistema
sip lo del end no esta ligado mira te pongo el codigo


delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var user : string;
  3. var pass : string;
  4. var nombre :string;
  5. var query : string;
  6. var iuser : Integer;
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13. begin
  14. IF
  15.   ComboBox1.Text = 'Usuario'
  16. Then
  17.   Application.MessageBox(
  18.     pchar(  ''
  19.     +#13#10+'Selecciona'
  20.     +#13#10+'un usuario'),
  21.     pchar(' Error '),
  22.     0+16+0+4096)
  23.  
  24. else
  25.   if
  26.     Edit1.Text = 'Contraseña'
  27.   Then
  28.     Application.MessageBox(
  29.     pchar(  ''
  30.     +#13#10+'Por favor ingresa'
  31.     +#13#10+'  Tu password'),
  32.     pchar(' Error '),
  33.     0+32+0+4096)
  34.   Else
  35. // aqui ago el query para verificar el password//
  36.   user := ComboBox1.Text ;
  37.   pass := Edit1.text      ;
  38.   query := 'SELECT usuario.nombre,usuario.id_usuario FROM usuario WHERE usuario.usuario = ' + '"'+ user + '"' + ' and usuario.password = ' + '"'+ pass + '"'    ;
  39.   AdoQuery1.SQL.Text:=query;
  40.   AdoQuery1.Active:=true;
  41.   while not AdoQuery1.Eof do
  42.   begin
  43.   nombre := AdoQuery1.Fields[0].Text;
  44.     Application.MessageBox(
  45.     pchar(  ''
  46.     +#13#10+' Bienvenido '
  47.     +#13#10+    nombre  ),
  48.     pchar('Grupo Empresarial Suma'),
  49.     0+0+0);
  50. AdoQuery1.Active:=false  ;
  51.  
  52.  
  53. End ;
  54.  
  55.  
  56.  
  57.   END;



solo que cuando paso al
AdoQuery1 a desactivado
ya no me deja cambiar la propiedad sql text para hacer el siguiente query que es asi


sql
  1. INSERT INTO control VALUES ('',2 ,"Ingreso al sistema" , now())


convirtiendolo a del phi


delphi
  1. var iuser : string; // esto esta en las declaraciones
  2.  
  3. query :=  'Insert into control values ('',+ iuser + , + 'Ingreso al sistema", now())' ;
  4. AdoQuery1.SQL.Text := query



pero me dice
Expected ; but recived an identifier 'ingreso' at line 80
y muchos errores mas en la linea 80 entonces pense ( derepente lo hago )

por que no poner un goto a un procedimiento que haga el registro en a base de datos y
que descargue el formulario y cargue el siguiente.

ademas que pensaba usar el goto para que despues de cada error por no poner el user o el pass mandarlos a el inicio de la función






  • 0

#19 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 07 abril 2009 - 01:06

Lo que pasa es que Ingreso al Sistema no es una variable, es un valor string, por lo tanto de ser así­:



delphi
  1. var iuser : string; // esto esta en las declaraciones
  2.  
  3. query :=  'Insert into control values ('','+iuser+' , 'Ingreso al sistema', now())' ;
  4. AdoQuery1.SQL.Text := query



Saludos.
  • 0

#20 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 08 abril 2009 - 08:40

Pues no

no se deja el


delphi
  1. query :=  'Insert into control values ('','+iuser+', 'Ingreso al sistema', now())' ;
  2. AdoQuery1.SQL.Text := query



y en otro tema entonces lo mejor seria descargar el formulario

  • 0




IP.Board spam blocked by CleanTalk.