PDA

Ver la Versión Completa : ClientDataSet con generadores


Vlady
28-01-2009, 15:13:10
Hola amigos del club estoy implementa en mi sistema los clientdataset pero me esta surgiendo el siguiente problema con las llaves primarias ya que antes con los querys podia consultar en el evento NewRecord el numero maximo de mi clave primaria y adicionarle 1, asi estaba manejando las llaves primarias, se q tambien se puede hacer esto con trigger de hecho en algunos casos tambien los utilizo para este fin, mi problema es q como soy nuevo en el uso de los clientdataset no se en que forma estos campos se deben manejar, en este momento me aparece un erro de "Field Value" requerido cuando trato de crear un registro, estoy utilizando Delphi 7 y firebird 2.0

Gracias de antemano
http://www.clubdelphi.com/foros/images/misc/progress.gif

pablonill
31-01-2009, 17:10:24
Vamos al caso de que tenemos firebird o interbase, y tenemos la siguiente tabla:

id: int (autogenerado requerido)
nombre: varchar(35)

cuando vamos a delphi e insertamos por ejempo con dbx los siguiente componentes:

1.- SQLConnection
2.- SQLQuery
3.- Provider
4.- ClientDataset

Entonces cuando llamamos al evento post y no ingresamos el valor para el campo id ya que es autogenerado, nos da el error de field value required, bueno, la solucion a esto es le haces doble click al ClientDataSet y te sale la ventana para agregar campos persistentes, entonces seleccionas el campo id y le quitas la propiedad required, entonces delphi no realiza la validacion a nivel aplicacion, sino que se lo deja al motor de base de datos y este es el que se encarga de agregarle el valor al campo.

Espero haber solucionado tu inconvenientes. Saludos

Vlady
02-02-2009, 17:37:30
Muchas gracias