Hola compañeros,
Tengo un inconveniente con los generadores, bueno extactamente con ellos no sino con la obtención del valor. Cuando ejecuto la sentencia sql para obtener el último, y asignarlo en el campo, tarda casi un segundo o mas en mostrarse y se nota la tardanza, el cídogo que utilizo es:
Cita:
sqlGenId.Close;
sqlGenId.CommandText := '';
sqlGenId.CommandText := 'Select gen_id('+ NombreGen +', 0) Id '+ 'from RDB$DATABASE';
sqlGenId.Open;
result := sqlGenId.FieldValues['ID'] + 1;
sqlGenId.Close;
|
Este es el ejemplo que he encontrado en la webde Ian, también se de las consecuencias que pueden haber al restringir las tablas del sistema en las nuevas versiones de Firebird.
Lo que necesito es saber si hay algún procedimiento más optimo, se que este lo es, pero alguno donde no se note el refresco, he intentado desactivar los controles pero no me asigna el valor en el campo o no lo muestra.
Como pueden ver estoy utilizando dbexpress.
Si hago un procedimiento almacenado donde pueda obtener el dato, no se si sea más veloz u optimo, si es así, tendría que hacer uno por cada tabla que necesite incrementar.
Agradezco la ayuda de antemano.
PD: Disculpen si no he contstado o dado consejo alguno de los dif. hilos, pero estoy contra el reloj con este proyecto. Prometo colaborar cuando vaya finalizando, espero sea pronto.
Gracias