Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-09-2005
pepitu pepitu is offline
Miembro
 
Registrado: sep 2005
Posts: 25
Poder: 0
pepitu Va por buen camino
Problema (básico?) editar-grabar registro

Hola a todos.
Recién empiezo en delphi y necesito que alguien me oriente sobre un problema y sobre la forma en que realizo una serie de pasos. He estado consultando los foros para molestar lo menos posible pero....
Tengo un datasource, database y ttable en un datamodulo (DM1)....bien conectados.
Estoy con Paradox.
En el form principal tengo un grid y una serie de botones para añadir Facturas, borrarlas, editarlas, buscarlas, ver los detalles (dbedits), etc...

Primer problema:
En uno de los botones llamado "Editar factura" pongo:

Código Delphi [-]
 procedure TForm1.BEditarFraClick(Sender: TObject);
 begin
   if BEditarFra.Caption='Editar factura' then //me baso en la caption del botón para decidir
   begin
     DM1.TableFC.Active:=False; //Normalmente tengo la TTable en ReadOnly=True
     DM1.TableFC.ReadOnly:=False; //Pongo ReadOnly en False para poder editar algun registro
     DM1.TableFC.Active:=True;
     Panel4.Align:=alTop; //juego con mostrar un panel (hay un splitter) que tiene los DBEdits de cada
     Panel4.Height:=314; //campo del registro y que son los que modificaré
     BEditarFra.Caption:='Grabar factura'; //a partir de aqui, cambio o deshabilito captios de botones.
     BVerFra.Caption:='Esconder fra.';
     BAnadirFra.Enabled:=False;
     BVerFra.Enabled:=False;
     BBorrar.Enabled:=False;
   end
   else
   begin
     DM1.TableFC.Post; //una vez editado un registro, lo grabo
     DM1.TableFC.Active:=False; //vuelvo a poner el ReadOnly a True
     DM1.TableFC.ReadOnly:=True;
     DM1.TableFC.Active:=True;
     BEditarFra.Caption:='Editar factura'; //vuelvo a cambiar captions y habilitar botones.
     BAnadirFra.Enabled:=True;
     BVerFra.Enabled:=True;
     BBorrar.Enabled:=True;
   end;
 end;
Si aprieto el botón, edito y vuelvo a apretarlo....todo funciona bien.
Pero si aprieto el botón, NO edito nada y vuelvo a apretarlo....me sale un error diciendo que el dataset no está en modo de inserción.

Me pregunto si voy bien encaminado. Por ejemplo, en el mismo form tengo un botón "Buscar" con el que uso un TQuery. Para buscar sólo conecto el datasource al query con lo que aprovecho los DBEdits (que estan conectados al Datasource)....Es correcto hacerlo así??

Posiblemente hayáis hablado cientos de veces sobre estos temas y seguramente sean sencillos o muy básicos....pero realmente, cuando empiezas, entre la cantidad de información que hay y las "infinitas" posibilidades que te permite delphi.....vas (voy) bastante....(MUY) perdido.

Gracias

Última edición por dec fecha: 21-09-2005 a las 11:51:14. Razón: ¡¡Encerrar el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita
  #2  
Antiguo 21-09-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Tienes 2 opciones:

a) Cuando pulsas el botón de editar "fuerzas" a que el dataset se ponga en modo de edición:
dataset.edit;

b) Cuando vas a hacer el post compruebas si reamnete se está editando:
if (dataset.state in [dsEdit, dsInsert])
dataset.post

Y no te preocupes si las consultas son sencillas, a todos nos ha pasado esto alguna vez!


Un saludo

Edu
Responder Con Cita
  #3  
Antiguo 21-09-2005
pepitu pepitu is offline
Miembro
 
Registrado: sep 2005
Posts: 25
Poder: 0
pepitu Va por buen camino
pepitu

Gracias EPUIGDEF...ya está solucionado (lo solucionastes).
Qué fácil cuando tienes/sabes la solución

Realmente no me preocupa demasiado que las consultas sean sencillas (soy muy novato y creo que quizás me cueste más de lo que esperaba....por lo que es 'normal').
Me preocupa más tenerlas que hacer al no ser capaz de sacarlas por mi mismo y, de paso, molestar a otros.
Pero bueno....me pierdo entre tantos métodos, procedimientos, clases, propiedades, eventos..... llegando a estar atascado frente a un botón durante mucho tiempo.
Pero ésto ya es otro tema.

De nuevo...gracias.
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


La franja horaria es GMT +2. Ahora son las 21:19:16.


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