Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   evento on new record? (https://www.clubdelphi.com/foros/showthread.php?t=20237)

istradlin 09-04-2005 04:39:01

evento on new record?
 
tengo un form con unos cuantos dbedits y dbnav para la navegacion por los registros de una tabla firebird.

yo quiero que cuando le doy al boton nuevo del dbnav, es decir para insertar un nuevo registro, necesito que se cubra uno de los edits con un determnado valor p.ej. un cadena de texto, el caso es que no se en que evento tengo que programar eso, probe en el onnewrecord del dataset pero no funciona :(

un saludo a todos

Lepe 09-04-2005 11:10:18

Pues debe funcionar, tienes varias formas de hacerlo, la que me gusta más es:

Código Delphi [-]
tblClientesIdCliente.AsString := 'pepeeeeeee que te llaman';

Si el campo tiene un TDBEdit en una ventana, verás el texto nada más hacer un Isnsert o Append sobre la tabla.

Un saludo

jachguate 11-04-2005 17:27:49

Cita:

Empezado por istradlin
pero no funciona :(

:rolleyes: este.... sin un mensaje de error o clase de excepción esto es ininteligible... :mad:
No estaría de mas una lectura al hilo de la calidad de las preguntas.

Hasta luego.

;)

Pablo Carlos 11-04-2005 17:41:11

Cita:

Empezado por istradlin
yo quiero que cuando le doy al boton nuevo del dbnav, es decir para insertar un nuevo registro, necesito que se cubra uno de los edits con un determnado valor
un saludo a todos

Hola... tu mismo tienes la respuesta -> evento AfterInsert de la Tablas, si es que la tabla que usas tiene ese evento.- :D
Saludos

jachguate 11-04-2005 18:03:14

Cita:

Empezado por Pablo Carlos
Hola... tu mismo tienes la respuesta -> evento AfterInsert de la Tablas, si es que la tabla que usas tiene ese evento.- :D
Saludos

Lamento no estar de acuerdo, pero creo que efectivamente el evento adecuado es OnNewRecord.

Hasta luego.

;)

Pablo Carlos 12-04-2005 22:21:37

Cita:

Empezado por jachguate
Lamento no estar de acuerdo

¿Porqué no estás de acuerdo? :confused: por que yo lo uso y me da los resultados esperados... si me podrías aclarar, por el hecho de dejarlo de usar y cambiar al newrecord.
Saludos

roman 12-04-2005 22:40:15

Buena pregunta. Buscando en los grupos de noticias de Borland veo varias respuestas al asunto que apuntan a una diferencia sutil:

Si asignas valores iniciales en el evento OnNewRecord el registro no se marca como modificado mientras que si lo haces en AfterInsert sí se marca como modificado.

Esto puede o no ser importante dependiendo del manejo subsecuente de la aplicación pero desde un punto de vista lógico me parece más adecuado OnNewRecord ya que dar valores iniciales o por defecto a los campos de un registro no significa que éste se haya modificado- al menos el usuario no lo ha hecho.

También indican que al asignar los valores en OnNewRecord, el registro aparece en los controles visuales ya con los datos mientras que al hacerlo en AfterInsert, los datos aparecen después de que el registro se presenta en los controles visuales.

Nuevamente una diferencia sutil pero si las inicializaciones son muchas y/o complicadas el efecto pudiera ser distinguible y el usuario notaría cómo van apareciendo los valores.

Hago notar que ninguna de las dos diferencias las he probado.

// Saludos

roman 12-04-2005 22:56:00

Es curioso, la ayuda de Delphi 2 respecto de OnNewRecord dice:

Cita:

The OnNewRecord event is activated whenever a new record is added to the dataset. The event occurs after the BeforeInsert event and before the AfterInsert event. OnNewRecord enables you to initialize any fields of the record without marking the record as Modified. Any changes to the record after this event will cause Modified to be set.
Sin embargo, en las posteriores versiones 3, 4, 5, 6 y 7 tal aclaración desapareció de la ayuda.

// Saludos

Pablo Carlos 12-04-2005 23:15:00

Muchas gracias Roman. Son buenas e importantes esas "sutiles diferencias". :eek: Para tenerlo en cuenta... Gracias
Saludos


La franja horaria es GMT +2. Ahora son las 04:09:07.

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