PDA

Ver la Versión Completa : Sentencias si existen datos dentro de un BDEdit


feliz-58
26-12-2012, 22:21:49
Hola y disculpen, pregunto mucho pero es que no quiero limitarme a lo que se y quiero aprender todo lo que pueda

Lo Que quiero hacer es lo siguiente, digamos que tengo un formulario con 1 DBEdit1 conectado a una base de datos en access con los componentes (AdoConnection y Adotable), quiero que cada ves que habra dicho formulario, compruebe si dentro del DBEdit1 tiene algo escrito y que si tiene algo me muestre un mensaje, de lo contrario no muestre nada. Me doy a entender?

//GRacias

Saludos.

ecfisa
26-12-2012, 22:52:29
Hola.

Si el TADOTable con el cuál se relaciona el TDBEdit mediante un TDataSource, está abierto y contiene al menos un registro, mostrará el registro actualmente seleccionado en la tabla.
Es decir que el único modo que al abrir un DataSet el DBEdit relacionado no muestre nada es que nada haya en la tabla.

Es por eso que no entiendo por que verificar si el DBEdit tiene algún valor asignado, ya que si el registro relacionado lo tiene lo mostrará y de otro modo no lo hará. (Pensá en el TDBEdit como la representación visual del contenido de un campo de una tabla)

De todos modos para verificar si un TDBEdit no tiene nada escrito, podrías revisar su propiedad Text:

...
if tu_DBEdit.Text = '' then
ShowMessage('Sin contenido');
...


Saludos. :)

feliz-58
26-12-2012, 23:43:12
Hola.

Si el TADOTable con el cuál se relaciona el TDBEdit mediante un TDataSource, está abierto y contiene al menos un registro, mostrará el registro actualmente seleccionado en la tabla.
Es decir que el único modo que al abrir un DataSet el DBEdit relacionado no muestre nada es que nada haya en la tabla.

Es por eso que no entiendo por que verificar si el DBEdit tiene algún valor asignado, ya que si el registro relacionado lo tiene lo mostrará y de otro modo no lo hará. (Pensá en el TDBEdit como la representación visual del contenido de un campo de una tabla)

De todos modos para verificar si un TDBEdit no tiene nada escrito, podrías revisar su propiedad Text:

...
if tu_DBEdit.Text = '' then
ShowMessage('Sin contenido');
...


Saludos. :)

y si hay algo como haria para que me muestre un mensaje?

mi objetivo no es que muestre un mensaje pero si entiendo como conjugar la accion, podre cambiar el mensaje por lo que yo quiera, me entiendes?



Mira lo que pasa, tengo una serie de DBedits, y como ocurre con el asunto de que si la tabla tiene registros, los DBedits aparecen llenos, habia colocado en el evento OnShow del formulario, el:


Adotable1.insert;


pero tenia un problema y es que, por ejemplo, si habria el formulario la primera ves, me ingresaba todos los datos,y asi quedaban limpios para ingresar un nuevo registro, pero si la primera ves que entraba, cerraba el formulario sin ingresar nada, a la segunda ves, en la base de datos me ingresaba una linea de registros vacia, y asi hace cada ves que entras, entonces lo que quiero hacer es que, si hay algo escrito en el DBEdit lo inserte si no los deje asi y no me inserte un espacio en blanco.

Gracias :)

ecfisa
27-12-2012, 00:14:19
Hola.

pero tenia un problema y es que, por ejemplo, si habria el formulario la primera ves, me ingresaba todos los datos, y asi quedaban limpios para ingresar un nuevo registro, pero si la primera ves que entraba, cerraba el formulario sin ingresar nada, a la segunda ves, en la base de datos me ingresaba una linea de registros vacia, y asi hace cada ves que entras, entonces lo que quiero hacer es que, si hay algo escrito en el DBEdit lo inserte si no los deje asi y no me inserte un espacio en blanco.

Para quede asentado un registro vacío, en algún lugar tenes que llamar al método Post antes de cerrar el form, de otro modo el cambio no queda registrado. Así que si estás viendo ese registro vacío en algún componente (supongo un DBGrid) o bién se realizó un Post o es un problema de Refresh.

Para poder discriminar esto último, sería útil saber si el form de ingreso se muestra de forma no modal(Show) o modal(ShowModal) y también donde tenes situados el TADOConnection y el TADOTable. Si en un DataModule, en el form que llama al formulario de ingreso o en el formulario de ingreso.

Saludos.

feliz-58
27-12-2012, 03:18:16
Hola.


Para quede asentado un registro vacío, en algún lugar tenes que llamar al método Post antes de cerrar el form, de otro modo el cambio no queda registrado. Así que si estás viendo ese registro vacío en algún componente (supongo un DBGrid) o bién se realizó un Post o es un problema de Refresh.

Para poder discriminar esto último, sería útil saber si el form de ingreso se muestra de forma no modal(Show) o modal(ShowModal) y también donde tenes situados el TADOConnection y el TADOTable. Si en un DataModule, en el form que llama al formulario de ingreso o en el formulario de ingreso.

Saludos.

ya se me ocurrio una idea de como resolverlo con el codigo que me diste, hice esto:


begin
if DBEdit2.Text = '' then
begin
end
else
adotable1.Insert;
end;