Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-11-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
duda

Hola!
Trabajo con Dephi 5 y Paradox. Tengo un form con un combo donde selecciono un dni de una persona. Y por otro lado tengo un form donde se muestran los datos de las personas. Cómo hago para que al introducir un dni concreto se muestre el form de la persona correspondiente? No se que usar. Muchas gracias
Responder Con Cita
  #2  
Antiguo 01-11-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Bueno, espero haber entendido bien...

Lo que debes hacer es, pasar la propiedad Text del Combo a un parametro de un TQuery que este en el otro TForm, una vez pasado y abierto el TQuery pues Procedes a mostrar el TForm con sus respectivos controles.

Espero te haya dado una buena pista, y que ademas te sirva .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 02-11-2003
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Otra alternativa es:

En el form donde tienes los datos personales pones una cajita de texto y un label que diga.... Buscar. En el Onchange de la cajita, haces un simple locate por el dni.

Así desde el otro form, lo único que haces es abrir la forma de datos personales y escribir por código el dni de la persona que buscas en dicha caja de texto.

Saludos.
Responder Con Cita
  #4  
Antiguo 05-11-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
A ver...yo tengo un lookupcombobox que me selecciona el dni de la persona y habia conseguido que me mostrase el form de la persona correspondiente. Lo hacia asi:

Código:
function TDlg_BuscarDni.ejecutar(tabla:TTable):Boolean;
var
i:integer;
begin

  if showModal=mrOk then
  begin
    Form_AltaAlumnos.qry_dniAlumno.Close;
    try
      Form_AltaAlumnos.qry_DniAlumno.ParamByName('dni').AsString:=Combo_Dni.Text;
    finally
      Form_AltaAlumnos.qry_DniAlumno.Open;
      Form_AltaAlumnos.show;
    end;
  end
  else ejecutar:=false;
end;

pero ahora resulta que no quiero usar uno de busqueda, sino un edit cualquiera donde yo pueda introducir el dni manualmente.

Lo unico que hice fue en el código anterior donde tenía:

Código:
Form_AltaAlumnos.qry_DniAlumno.ParamByName('dni').AsString:=Combo_Dni.Text;
poner:

Código:
Form_AltaAlumnos.qry_DniAlumno.ParamByName('dni').AsString:=Edit_Dni.Text;
pero no funciona. No me abre el form de la persona cuyo dni he introducido, sino que me abre el último form abierto. No entiendo porque hace eso. Qué estoy haciendo mal??

Responder Con Cita
  #5  
Antiguo 05-11-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Hola , La verdad es que no se si este es el origen del problema pero yo pondria tu codigo asi:

Código:
function    TDlg_BuscarDni.ejecutar(tabla:TTable):Boolean;
var
i:integer;
begin

    if showModal=mrOk then
    begin
       Form_AltaAlumnos.qry_dniAlumno.Close;
    try
       Form_AltaAlumnos.qry_DniAlumno.ParamByName('dni').AsString:=Edit_Dni.Text;
    finally
      Form_AltaAlumnos.qry_DniAlumno.Open;
      Form_AltaAlumnos.ShowModal;
      Form_AltaAlumnos.Release;
    end;
  end
  else ejecutar:=false;
end;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 05-11-2003 a las 15:54:43.
Responder Con Cita
  #6  
Antiguo 05-11-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Ahh, se me olvidaba, para que usas el parametro "Tabla" en este funcion?, Bueno eso a menos de que solo ubieras puesto una parte del codigo, claro esta.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 05-11-2003 a las 15:56:13.
Responder Con Cita
  #7  
Antiguo 05-11-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
Hola de nuevo!
Pues sigue sin funcionarme. Me sigue saliendo el último form abiertoy no el form del alumno cuyo dni he introducido. Eso si, pasarle el ttable que me preguntaste era un error, al igual que la variable i declarada que tampoco uso. Cambién el código y se me olvidó borrar eso. Pues nada, muchas gracias y seguiré pegandome con esto. Si a alguien se le ocurre que puede ser...
Responder Con Cita
  #8  
Antiguo 05-11-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Bueno, pues me queda preguntarte solo una cosilla, ¿Cual es el Script que tiene el qry_DniAlumno?, a lo mejor hay este tambien el error...

Y otra, ¿Los controles en realidad estan conectados a ese TQuery?.

Espero me respondas .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #9  
Antiguo 05-11-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
Claro que respondo. Se agradece mucho la ayuda

lo que tengo en el sql del query es:
Código:
select *
from "Alumno.db"
where Dni_Alumno like :dni
y
Cita:
¿Los controles en realidad estan conectados a ese TQuery?
no entiendo que me quieres decir con eso. lo único que tengo es en las propiedades del query:

databasename: gestor de practicas
datasource: modulo.dsAlumnos

Thankius
Responder Con Cita
  #10  
Antiguo 05-11-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Cómo hago para que al introducir un dni concreto se muestre el form de la persona correspondiente?
Bueno, Mira bien lo que necesitas, basandome en tu pregunta sobre que necesitas un "dni concreto" entonces yo diria que lo que debe tener tu Query es un Igual(=) en vez de un Like.

Asi:

Código:
select *
from "Alumno.db"
where Dni_Alumno =:dni
Y bueno, solo por si "Las moscas", recuerda definir en la propiedad params al parametro dni de tipo String.

ahhh, lo que te pruguntaba de los controles, simplemente era que si los controles que haz puesto en el formulario tienen su propiedad DataSource Apuntando al Datasorce que hace referencia al susodicho TQuery.
(Yo diria que seria bueno verificarlo pero no centrarnos mucho por este lado).

Ojala que ahora si
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #11  
Antiguo 05-11-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
nada Puse el igual en la consulta sql, verifiqué que tenía el datasource bien puesto en cada casilla del form de alta y tb miré si tenía bien definida la propiedad params. Y sip, estaba todo bien, o al menos como se supone que debería estar. Y no me hace caso (buaaaa!) me sigue mostrando el último form que abra, no el que tiene que ser este delphi va a acabar conmigo...
Responder Con Cita
  #12  
Antiguo 05-11-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Caramba, que podria ser?, ya como ultima patada de ahogado, que tal si quitas de la propiedad DataSource Del TQuery eso de

datasource: modulo.dsAlumnos

Y mejor lo dejas en blanco.

Nota: Recuerda que debes tener un datasource amarrado al TQuery no el TQuery amarrado a un DataSource. (Bueno al menos en este caso, creo yo).
Digo esto porque a veces me da la impresion de que tienes en la propiedad DataSource del TQuery "modulo.dsAlumnos" cuando deberia ser que en la propiedad DataSet del DataSorce Tengas "qry_DniAlumno".

Bueno, espero que te sirva.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #13  
Antiguo 05-11-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
Na chico, que esto sigue sin funcionar. Me voy a volver chiflada. Weno, lo q he hecho ahora es poner el query y el datasource en un datamodule donde tengo las demás cosas. El código me ha quedado entonces asi:

Código:
if showModal=mrOk then
  begin
    Modulo.qry_dniAlumno.close;
    try
      Modulo.qry_DniAlumno.ParamByName('dni').AsString:=Edit_Dni.text;
    finally
      Modulo.qry_DniAlumno.Open;
      Form_AltaAlumnos.showmodal;
      form_AltaAlumnos.release;
    end;
  end
  else ejecutar:=false;
tb he probado lo de quitar el datasource del query y nada. Y el dataset del datasource está bien, tengo puesto el qry_Dnialumno y me sigue saliendo el form que le da la gana. Bueno, el que le da la gana no, el último form abierto (al no ser que inicie la aplicación que entonces sale el form del primer alumno de la base de datos).

Esto es un expediente X!!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:15:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi