![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Falta información por tu parte, ¿cómo aumentas el generador?, trigger, store procedure, desde delphi...
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#2
|
|||
|
|||
|
gracias casimiro, todo lo hago desde delphi.
__________________
JaiMelendez |
|
#3
|
||||
|
||||
|
Hola.
Para conocer el valor actual de un generador, puedes usar la función gen_id con un incremento de 0. Ejplo. select gen_id(gen_clientes, 0) from rdb$database NOTA: Utilizo rdb$database porqué sé que un select de esa tabla siempre va a devolver un único registro. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#4
|
|||
|
|||
|
gracias guillotemarc enseguida lo pruebo.
__________________
JaiMelendez |
|
#5
|
||||
|
||||
|
Al estar relacionadas entiendo que por cada registro en la Tabla A puede haber x en la Tabla B, en este caso podrías utilizar el evento OnNewRecord de la tabla B.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#6
|
|||
|
|||
|
gracias creo que esa es la respuesta ahorita la pruebo
Cita:
gracias voy a probar |
|
#7
|
||||
|
||||
|
Das la información con cuentagotas
![]() Desde delphi, sí, vale, pero ?cómo?. El método propuesto por el compañero guillotmarc te devuelve, evidentemente, el último valor generado, pero si estás en un entorno multiusuario entonces puede no valerte si otro usuario ha pedido un nuevo número.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#8
|
||||
|
||||
|
Si trabajas con Firebird 2.1 o posterior puedes utlizar la clausula RETURNING.
No es recomendable que tú asignes el valor del campo ID, o de cualquier otro campo que obtiene su valor del próximo estado del generador. Para asignar los valores en este tipo de campos, es mejor dejar el código de asignación en un stored procedure -ejecutado en un AFTER INSERT-. A cómo tú lo has dicho, nunca sabes si un usuario va a ingresar un registro al mismo tiempo que lo haga otro usuario. Saludos, Chris Última edición por Chris fecha: 09-01-2011 a las 23:16:28. |
|
#9
|
||||
|
||||
|
Cita:
Saludos, |
|
#10
|
||||
|
||||
|
No estoy muy seguro, pero creo que con los componentes que soporten Firebird 2.1 llamas al procedimiento Open, en lugar de llamar al ExecSQL como lo harías normalmente. Desconozco si esta funcionalidad es soportada por los componentes que no han sido desarrollados teniendo en cuanta las mejoras en la versión 2.1 de firebird.
|
|
#11
|
||||
|
||||
|
Así parece ser Cris. Debería emplearse componentes o drivers que trabajen con las nuevas características de Firebird... Yo uso D6 y FB 1.5 por lo que no se mucho, pero otras personas que trabajan con Firebird 2.0 y 2.1 y cuentan con versiones modernas de Delphi no pueden leer el RETURNING con los componentes estándares.
Desconozco si Zeos ya soporta esto, creo yo que ni siquiera el nuevo Driver para DBX disponible en Delphi 2010 y XE Enterprise tiene soporte para esto. Saludos, |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| validar tedit, que no ingrese '.' | gonza_619 | Varios | 2 | 12-11-2010 00:38:27 |
| ABM,como validar que no se ingrese un codigo existente a mi BD | juliana_r | Conexión con bases de datos | 10 | 10-06-2010 17:09:24 |
| generador | novaten | Conexión con bases de datos | 1 | 09-04-2005 21:29:44 |
| enmascarar un tedit cuando se ingrese La clave de acceso | andresenlared | Varios | 4 | 08-01-2004 17:45:27 |
| Ver un generador | Rabata | Conexión con bases de datos | 4 | 17-09-2003 15:31:01 |
|