Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2008
Avatar de megaredoxk
megaredoxk megaredoxk is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
megaredoxk Va por buen camino
error al guardar

un saludo muy especial.
tengo un problema con la tabla ingresos,tengo como index el campo fecha pero al guardar el ingreso solo guarda el ultimo ingreso generado y no deja guardado los anteriores
utilizo Paradox7

Table2.edit;
Table2.FieldByName('Ingreso').AsFloat := StrToFloat(Label3.Caption);
Table2.FieldByName('Fecha').AsDateTime := Date;
Table2.Post;
Table2.Next;

gracias
Responder Con Cita
  #2  
Antiguo 14-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
Table2.Insert;
Table2.FieldByName('Ingreso').AsFloat := StrToFloat(Label3.Caption);
Table2.FieldByName('Fecha').AsDateTime := Date;
Table2.Post;
Si usas edit editara el campo en donde este.
Si usas insert insertara un nuevo registro.
Tambien se puede usar append.
Saludos
Responder Con Cita
  #3  
Antiguo 14-01-2008
Avatar de megaredoxk
megaredoxk megaredoxk is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
megaredoxk Va por buen camino
me genera un error

muchas gracias Caral, pero ahora me sale un error un "Key Violation" por que serà
Responder Con Cita
  #4  
Antiguo 14-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Porque has definido un campo como clave primaria (primary Key, pk) e intentas añadir un registro cuya clave primaria ya existe. Es normal que pase esto para no repetir información en la base de datos.

Ya que usas paradox, en cada TTable que uses, en el evento afterpost añade:
Código Delphi [-]
   Dataset.FlushBuffers

"Dataset" es el parámetro que tiene el evento. Flushbuffers (quizás esté mal escrito) fuerza a que se escriba el registro en la Base de datos, si se omite, el registro quedará en caché (casi siempre).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 16-01-2008
Avatar de megaredoxk
megaredoxk megaredoxk is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
megaredoxk Va por buen camino
me genera un error

muchas gracias compañero Lepe, perome genera un error "Undeclarade Identifier FlushBuffers" y cuando me dices que lo force el programa no compila no se ejecuta.
Responder Con Cita
  #6  
Antiguo 16-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
En ese caso, en lugar de usar "Dataset" usa el nombre de tu tabla, por ejemplo:

tblCliente.Flu (a partir de aquí, el code insight de delphi te dirá como se llama el método).

Pero ojo que eso no soluciona para nada el tema de la clave primaria, es solo para forzar la escritura a disco.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 17-01-2008
Avatar de megaredoxk
megaredoxk megaredoxk is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
megaredoxk Va por buen camino
Arrow no me gustarìa, pero

un placer saludarte compadre Lepe,
de todas formas la aplicación queda como que defectuosa, me gustaría saber como que me recomendaís para esta situación, yo lo que quiero es obtener los ingresos a una fecha determinada
Responder Con Cita
  #8  
Antiguo 18-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Saludos igualmente .

Lo primero será crear una clave primaria en la tabla, debe ser un campo que su valor, no se repita jamás en toda la vida del programa.

Cuando no tenemos un campo así (por ejemplo el DNI), se suele añadir uno llamado "ID" de tipo autoinc(remento) que tomará un valor consecutivo por cada registro añadido. De esa forma ya no dará el error de "clave primaria duplicada".

Si vas a buscar por fechas, es aconsejable crear (también en el Database desktop) un índice por ese campo. Así las búsquedas serán rapidísimas.

Si quieres ver los ingresos de un día determinado, tienes varias opciones, desde usar Filter:
Código Delphi [-]
tablaingresos.Filter := 'fecha = ' + FormatDatetime('mm/dd/yyyy', date); 
tablaingresos.Filtered := true; //
He puesto "date" para que muestre los ingresos del día al corriente, pero puedes usar un TDatetimePicker para que el usuario elija la fecha.

Si conectas un DBGrid a esa tabla, verás el resultado cuando se aplique el filtro.

O bien usar un TQuery (personalmente me gusta más), será más flexible.
En el inspector de objetos tendrás que establecer su propiedad Databasename
Código Delphi [-]
query1.sql.text := 'Select ingresos, fecha  from Nombretabla where  fecha between :fini and :ffin';
query1.parambyname('fini').asdate := datetimepicker1.date;
query1.parambyname('ffin').asdate := datetimepicker2.date;
Query1.Open;
También puedes enganchar un DBGrid para ver los resultados más cómodamente.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 18-01-2008
Avatar de megaredoxk
megaredoxk megaredoxk is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
megaredoxk Va por buen camino
Thumbs up compadre Lepe

compadre Lepe le digo algo, no soy tan veterano en Delphi, màs bien novato, lo digo porq lo que usted me acaba de explicar se me hace un poco dificil de entender...de todas maneras le agradezco mucho y le pedirìa si es posible algo un poco màs detallado.

de todo corazòn le agradezco su explicaciòn.

que estes muy bien.
Responder Con Cita
  #10  
Antiguo 18-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Este link te ayudará para crear la clave primaria, el índice y algunas cosas más.

En cuanto a la búsqueda:
- De la paleta BDE de delphi añade un TQuery a tu ventana.
- En el inspector de objetos, busca su propiedad "Databasename" y añade la ruta hasta tus tablas "C:\miPrograma\mistablas"
- De la paleta "Data Access" añade un DataSource
- En el inspector de objetos, su propiedad Dataset le asignas el Query1.
- Añade un DBGrid de la paleta DataControls
- En su propiedad Datasource, elige el Datasource1 (que acabas de añadir).

Añade dos controles TdateTimePicker (lo siento, de memoria no recuerdo donde están en delphi: Win32 o Aditional)
Coloca un TButton de la paleta Standard, doble clic sobre él y en su evento OnClick añades:
Código Delphi [-]
query1.sql.text := 'Select ingresos, fecha  from **Nombretabla** where  fecha between :fini and :ffin';
query1.parambyname('fini').asdate := datetimepicker1.date;
query1.parambyname('ffin').asdate := datetimepicker2.date;
Query1.Open;

**Nombretabla** será el nombre de tu tabla paradox, por ejemplo, si se llama "ingresos.db", el nombre será "ingresos"

Ahora solo queda pulsar F9 y que todo compile .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #11  
Antiguo 19-01-2008
Avatar de megaredoxk
megaredoxk megaredoxk is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
megaredoxk Va por buen camino
Thumbs up gracias compadre Lepe

un saludo muy especial compadre Lepe, le agradezco mucho por su explicaciòn y colaboraciòn, enseguida me pondre a trabajar lo que usted me dice.

q este muy bien
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al guardar datos Manuel Firebird e Interbase 1 05-09-2006 23:01:01
Guardar mensajes de Error malcantar OOP 4 27-07-2006 17:49:31
Error al momento de guardar Nathan MySQL 3 31-01-2006 01:41:47
Error al guardar modificaciones tabla paradox Sayuri Tablas planas 2 29-07-2005 20:48:10
ERROR al guardar en base de datos emeceuy Conexión con bases de datos 1 23-06-2003 15:40:07


La franja horaria es GMT +2. Ahora son las 19:54:35.


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