PDA

Ver la Versión Completa : ClientDataset no puede trabajar con enteros largos


Tcmn
18-02-2011, 03:28:36
Hola estoy trabajando con Delphi 6, Win XP Profesional, IbExpert y Firebird 2.1 y hasta hace poco estaba manejando las tablas con los IBDataset de IBX de la pestaña interbase de Delphi pero, por recomendacion de algunos compañeros empeze a trabajar con los clientDataset pero al hacer pruebas siguiendo un tutorial: http://delphiallimite.blogspot.com/2007/09/la-potencia-de-los-clientdataset-i.html

Pero me di cuenta que aunque si podia insertar registros, no los podia editar ni eliminar, pues me mandaba los siguientes mensajes de error al tratar de ejecutar ApplyUpdates del clientDataset:

---------------------------
Debugger Exception Notification
---------------------------
Project ClientDatasets.exe raised exception class EIBClientError with message 'Unsupported feature'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

y despues de presionar OK me mandaba este otro:

---------------------------
Debugger Exception Notification
---------------------------
Project ClientDatasets.exe raised exception class EDatabaseError with message 'Unable to find record. No key specified'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help



Despues de un quebradero de cabeza me di cuenta que el problema era porque en mis tablas cuando el campo clave era BIGINT ocurria esto. Asi que tuve que cambiar a todas las tablas con IbExpert para que los campos que eran BigInt ahora fueran Integer.

Asi lo esquive esto. Pero me surgio la duda de si hay manera de que los clientDataset puedan trabajar con los enteros largos que maneja Firebird; pues, aunque las tablas que voy a usar en este sistema podran ser suficientes con los integer creo que llegara el dia que a fuerzas ocupare usar los BigInt sobre todo enlos campos clave para las tablas que manejan muchisimos registros.

Aclaro que busque en los foros pero no encontre algo sobre esto. Espero no me haya brincado un hilo que si lo haya tratado.