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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Ultima Linea del DbGrid

Hola a todos de nuevo!!



Esto es lo que me ocurre cuando intento meter un cliente nuevo. El codigo que utilizo es el siguiente:

En el botón Nuevo:

Código Delphi [-]
datamodule1.clientes.last;
datamodule1.clientes.insert;

Y en este momento me pongo a rellenar DBedits. Utilizo el .INSERT antes de rellenar dbedits porque me los deja limpios. Si utilizo el .INSERT después de rellenar dbedits (en el botón aceptar) la funcion .Clear de los DBedits me los limpia pero en cuanto pico encima de cualquier dbedit, con el ratón, estos se llenan con los datos del ultimo cliente.

Lo que quiero es que cuando yo le de al botón "nuevo", la linea que en la foto se pone entre el último y el penúltimo registro, sea posterior al ultimo registro.

No se si me he explicado.

Gracias
Responder Con Cita
  #2  
Antiguo 16-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: Aug 2006
Posts: 7.659
Poder: 20
Caral Va por buen camino
Hola
Tal vez:
Código Delphi [-]
datamodule1.clientes.append;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 16-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Con que simplicidad y precisión explicáis las cosas........ que envidia.

Ahora el problema es que cuando me pongo a rellenar DBedits reaparecen los datos del ultimo cliente

Última edición por Er0s fecha: 16-09-2010 a las 20:32:31.
Responder Con Cita
  #4  
Antiguo 16-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: Aug 2006
Posts: 7.659
Poder: 20
Caral Va por buen camino
Hola
No se como llamas a la tabla.
Que usas: Table o query??
Esta ligado el DBGrid con los DBEdit??
Al Insertar haces un refresh??
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 16-09-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.580
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Er0s Ver Mensaje
[..] Ahora el problema es que cuando me pongo a rellenar DBedits reaparecen los datos del ultimo cliente
¿Cómo es eso?

Por cierto, el datamodule1.clientes.last; sobra, no sirve para nada.
Responder Con Cita
  #6  
Antiguo 16-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Utilizo una TADOTable y un datasource. El DataSource, a su vez,esta ligado a la DBGrid y a los DBedits.

Con el .append para realizar una insercción debo hacer lo siguiente.

- Nuevo cliente. Los DBedits aparecen todos limpios.
- Pico con el raton para empezar a rellenar datos y me aparecen los datos del ultimo cliente insertado.
- Cancelo
- Nuevo cliente de nuevo y ahora si funciona.

Es decir que para insertar un cliente, ahora mismo, debo presionar tres botones NUEVO CLIENTE,CANCELAR y NUEVO CLIENTE otra vez

Eso si el problema de la linea blanca entre dos registros se ha solucionado.
Responder Con Cita
  #7  
Antiguo 16-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Cómo es eso?

Por cierto, el datamodule1.clientes.last; sobra, no sirve para nada.

si no ponia el .Last la linea blanca aparecia entre el cliente que en ese momento estubiese señalado y el anterior y por eso pense en la funcion LAST a ver si me solucionaba el problema
Responder Con Cita
  #8  
Antiguo 16-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: Aug 2006
Posts: 7.659
Poder: 20
Caral Va por buen camino
Hola
Bien:
BD access?
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 16-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Bien:
BD access?
Saludos
Si BD de access
Responder Con Cita
  #10  
Antiguo 16-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: Aug 2006
Posts: 7.659
Poder: 20
Caral Va por buen camino
Hola
Bien:
El programa y la bd son grandes?.
Si no son muy grandes quilate el EXE, pon el codigo y la BD en un ZIP y colocalo aqui, lo reviso con gusto, me sera mas facil dar con el asunto.
Saludos
PD: Lo unico que no me gusta es que usas componentes de tercero para los botones.
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 16-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Todo comprimido no llegará a los 3 megas.

Advierto que el programa no esta optimizado y repito muchas instrucciones en lugar de hacer un procedimiento para no repetir tanto. (Lo dejo para cuando termine con los clientes y tenga todo claro)

Bueno cuando llegue a casa lo cuelgo y a ver que me decís.
Responder Con Cita
  #12  
Antiguo 16-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: Aug 2006
Posts: 7.659
Poder: 20
Caral Va por buen camino
Hola
Bien; Cuando tengas tiempo lo pones.
Me extraña que sea tan grande, debes haber trabajado mucho.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #13  
Antiguo 16-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: Aug 2006
Posts: 7.659
Poder: 20
Caral Va por buen camino
Hola
Como tengo algo de tiempo me hice un ejemplo usando AdoTable y AdoQuery en master detail, para mi es la mejor manera de hacerlo ya que es SQL.
El ejemplo hace lo que se requiere:
Modifica, Elimina, Agrega, Guarda.
Como veo que en tu caso el cliente tiene un codigo me imagino que este deberá de ser unico, por eso el programita cuando agrega un nuevo cliente de una vez le da el numero que le corresponde asi se evitan duplicados.
Ademas se conecta por un ini, no se si el tuyo lo hara pero es mejor.
Espero te sirva de algo el ejemplo.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 19-09-2010 a las 16:06:07.
Responder Con Cita
  #14  
Antiguo 17-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Na... las imágenes es lo que mas pesa.

Ahi te dejo el programa.... no me metas mucha caña :P

http://www.megaupload.com/?d=OPREQMXN
Responder Con Cita
  #15  
Antiguo 17-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Acabo de echar un cigarro en la terraza, pensando en el dichoso problemita.

Tenia que pulsar como he dicho antes el botón nuevo , cancelar y nuevo otra vez. Pues acabo de solucionar el problema

Código Delphi [-]
datamodule1.clientes.append;
datamodule1.clientes.append;

Es absurdo, raro, sin logica...... pero funciona. Ahora ya puedo insertar un cliente al final del DBGrid y sin que los DBEdits se llenen con los datos del ultimo cliente insertado.


Caral no te quemes la cabeza...seguro que en las próximas tablas todo rula sin estos absurdos.


Gracias
Responder Con Cita
  #16  
Antiguo 17-09-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.580
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Er0s Ver Mensaje
[..] Tenia que pulsar como he dicho antes el botón nuevo , cancelar y nuevo otra vez. Pues acabo de solucionar el problema
Código Delphi [-]
datamodule1.clientes.append;
datamodule1.clientes.append;
Es absurdo, raro, sin logica...... pero funciona. Ahora ya puedo insertar un cliente al final del DBGrid y sin que los DBEdits se llenen con los datos del ultimo cliente insertado.
Caral no te quemes la cabeza...seguro que en las próximas tablas todo rula sin estos absurdos.
Gracias
Amigo Er0s, aunque parezca absurdo y raro... seguro que sí tiene lógica si se encuentra el problema, ten en cuenta que estos errores son los que después en cualquier momento te vuelven loco porque el programa deja de funcionar y no sabes el motivo. Hay que encontrar el problema... sí ó sí, además que seguro que es algo simple, ya verás.
Es como si le dices a tu mecánico: "déjalo, no te quemes las pestañas, si frena a la segunda, pues le doy dos veces y se acabó. El problema es que hay un problema... y en cualquier momento dejará de frenar a la segunda y no frenará
Responder Con Cita
  #17  
Antiguo 17-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Por supuesto..que el problema hay que solucionarlo, pero para enseñar mañana el programita a mi colega, me vale de momento.

Gracias por vuestra ayuda y seguimos buscando el problema.
Responder Con Cita
  #18  
Antiguo 17-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: Aug 2006
Posts: 7.659
Poder: 20
Caral Va por buen camino
Hola
Correcciones que hice:
1- Se creo un archivo INI para hacer la conexion (si tienes dudas, pregunta).
2- Se elimino la necesidad de las imagenes (se usaron los botones).
3- Se eliminaron los codigos innecesarios (muchos).
4- Se modifico los nombres de los campos( es importante).
5- El Campo ClienteID hay que cambiarlo de autoincremetal a numerico (no esta hecho todavía)
Por lo demas es un programa en proceso asi que es poco lo que se puede hacer.
Todo quedo funcionando igual que estaba, solo que ahora se entiende mejor.
Espero te sirva para mejorar tu codigo que para ser de un Aprendiz esta muy bien.
Saludos
PD: Mira la diferencia en el peso del programa, con todo e imagenes.
__________________
Siempre Novato

Última edición por Caral fecha: 19-09-2010 a las 16:06:07.
Responder Con Cita
  #19  
Antiguo 17-09-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.580
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Caral Ver Mensaje
[..] PD: Mira la diferencia en el peso del programa, con todo e imagenes.
Eso me hace falta a mí, ponerme a dieta, que me sobran un montón de kilos
Responder Con Cita
  #20  
Antiguo 17-09-2010
Er0s Er0s is offline
Miembro
 
Registrado: Mar 2008
Posts: 75
Poder: 11
Er0s Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Correcciones que hice:
1- Se creo un archivo INI para hacer la conexion (si tienes dudas, pregunta).
2- Se elimino la necesidad de las imagenes (se usaron los botones).
3- Se eliminaron los codigos innecesarios (muchos).
4- Se modifico los nombres de los campos( es importante).
5- El Campo ClienteID hay que cambiarlo de autoincremetal a numerico (no esta hecho todavía)
1- Ya habia visto eso lo del archivo ini por en el foro y todavía no lo habia aplicado, ya preguntare cuando me ponga a ello.
2- Las imagenes son necesarias, puesto que la posibilidad de meterlas en speedbuttons hace que tenga que transformar PNG o JPG a BMP y pierdo las transparencias .... por lo cual es mucho mas vistoso, a mi modo de ver.
3- Soy un desastre... pero al final lo coloco todo
4- Porque el cambio de nombres? cual es tu razón.
5- El campo ClienteId lo dejo Autoincremental puesto que dejare que el programa autoasigne la ID al cliente.... La única duda que me cabe aquí es la siguiente:
- Digamos que tenemos 10 Clientes. Si elimino el cliente 5 y el 7 me quedaran 8 clientes pero las IDS ya no serán seguidas. Eso se soluciona compactando la base de datos, lo que no se es como hacerlo desde el programa. Ya planteare la duda en otro hilo y lo discutimos.

Por lo demás he probado lo que has mandado y al compilar me da un montón de errores que he solucionado, casi todos en las llamadas a las imágenes y lo del INI no rula, ya miraremos porque. Introducir Clientes tampoco :S, debe ser de delphi 2006 a 2010, cualquier pijada, porque no pongo en duda tu sabiduria en el tema.

Gracias por haberte tomado la molestia de corregir mis errores
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ULTIMA HORA: compilador de linea de comandos disponible. Epachsoft Noticias 0 28-09-2006 00:02:55
Eliminar la ultima linea de un Memo MRSAM Varios 2 18-10-2005 21:02:37
QRShape en la ultima línea!!! CarmaZone Impresión 4 19-07-2005 17:09:50
TRxRichEdit. Ultima linea sin dejar el foco en él. jorodgar Varios 1 25-05-2005 11:59:22
Leer ultima linea de un archivo ??? chelejuan Varios 3 04-11-2004 16:53:39


La franja horaria es GMT +2. Ahora son las 21:27:34.


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