Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A ver. A riesgo de ser algo necio me parece que hay que recapitular las cosas.

Un DBEdit muestra los datos del registro activo en la tabla. Siempre.

Lo voy a repetir:

Un DBEdit muestra los datos del registro activo en la tabla. Siempre.

Si se hace un DBEdit.Clear, estaremos borrando los datos del campo asociado en el registro actual. ¿Es esto lo que se quiere? Yo creo que no.

Habría que empezar a preguntarse, ¿cómo es que esos DBEdit aparecen en blanco en primer lugar?

Porque se hace un ZTable.Insert.

ZTable.Insert no tiene por finalidad limpiar los campos; lo que hace es insertar un registro en blanco, cosa que suena parecida pero es muy distinta. Y al ser un registro en blanco, los DBEdits muestran datos en blanco, pero siguen siendo los datos del registro activo: el registro en blanco.

Dijiste al comienzo:

Cita:
Empezado por Ade
pero veo la pantalla algo sosa y pense q si el usuario introducia datos y no deseaba insertar q??
pues un boton , ya fuera cancelar o limpiar, cuya funcionalidad fuera esa la de limpiar los dbedit.
pero no tengo ningun edit,pensaba q con ellos deberia de hacer:
Si el usuario desea ya no introducir datos entonces tienes que cancelar la operación, y eso se hace con ZTable1.Cancel.

Puedes ciertamente limpiar los DBEdit, pero sigues teniendo un registro extra.

Ahora, si el punto es meramente ornamental

Cita:
Empezado por Ade
veo la pantalla algo sosa
entonces, como dice Caral, usa Edits normales en lugar de DBEdits. Pero ten en cuenta que entonces la dinámica cambia. Cuando desees guardar los datos haces el Insert y pasas el contenido de los Edits directamente a los campos:

Código Delphi [-]
{ Guardar datos }
ZTable.Insert;
ZTable.FieldByName('campo1').AsString := Edit1.Text;
ZTable.FieldByName('campo2').AsString := Edit2.Text;

...

ZTable.Post;

Y así puedes poner en blanco los Edits cuando quieras.

// Saludos

Última edición por roman fecha: 27-09-2006 a las 22:21:35.
Responder Con Cita
  #2  
Antiguo 27-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Bueno Ade
Con esta explicacion de Roman, 1000 veces mejor que la mia, creo que te tendra que quedar clarisimo.
Gracias Roman por tu ayuda, creo que se me estaba escapando de las manos
Saludos
Responder Con Cita
  #3  
Antiguo 27-09-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 20
Ade Va por buen camino
gracias roman y caral, lo que no queria era guardar dato por dato
Código Delphi [-]
{ Guardar datos }
ZTable.Insert;
ZTable.FieldByName('campo1').AsString := Edit1.Text;
ZTable.FieldByName('campo2').AsString := Edit2.Text;
...
ZTable.Post;
y cambiar todos los dbedit por edit, pero creo que es lo que hare

Saludos
Responder Con Cita
  #4  
Antiguo 28-09-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 20
Ade Va por buen camino
hola ya consegui lo que queria sin tener q cambiar mis dbedit por edit.
puede que me de error en un futuro, pero de momento me vale,
gracias a Roman por su comentario:
Cita:
Originalmente escrito por Roman
ZTable.Insert no tiene por finalidad limpiar los campos; lo que hace es insertar un registro en blanco, cosa que suena parecida pero es muy distinta. Y al ser un registro en blanco, los DBEdits muestran datos en blanco, pero siguen siendo los datos del registro activo: el registro en blanco.
pues eso fue lo que use para limpiar los dbedit, y ya lo hacia al principio y no se por qué no cai.
En el boton limpiar puse:
Código Delphi [-]
procedure TProveedores.LimpiarClick(Sender: TObject);
begin
     ZTable1.Cancel;
     ZTable1.Insert;
     NumInsertado.caption:='Campos limpios.';
     NumInsertado.visible:=true;
end;
y ya funciona como queria

Saludos
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 20:34:01.


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