![]() |
![]() |
| 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 |
|
#9
|
|||
|
|||
|
hola Hector ,es Julio ramos mi problema es el siguiente muy paresido al de JoanKa:Tengo las siguiente tablas:
CREATE TABLE tblfacturas ( COD_factura long NOT NULL, NOMB_CLI VARCHAR(30), );CREATE TABLE tbltiene ( COD_factura long NOT NULL, /* este campo esta referenciado al campo clave de tblfacturas*/ cod_articulo VARCHAR(10) NOT NULL/* este campo esta referenciado al campo clave de tblarticulo*/ ); CREATE TABLE tblarticulo ( cod_articulo VARCHAR(10) NOT NULL, nomb_articulo VARCHAR(50) NOT NULL ); asi como este Procedimiento almacenado CREATE PROCEDURE INSERTAR_factura ( COD_factura VARCHAR(10), NOM_cli VARCHAR(30), AS begin INSERT INTO tblfacturas (CODI_factura, NOMB_CLI, ) values (:COD_factura, :NOM_cli); end tengo este trigger CREATE GENERATOR CODI_GENER; SET GENERATOR CODI_GENER TO 0; CREATE TRIGGER INSERTAR_CODI FOR CLIENTE ACTIVE BEFORE INSERT POSITION 0 AS begin if (new.cod_factura is null) then new.cod_factura=gen_id(codi_gener,1);/*este numero hay manera de sacarlo al momento de ser generado por alguna consulta,porcedimeinto desde delphi,el manejador*/ end como puedes ver necesito el numero que genera el trigger al momento de insertar el tabla factura para colocarlo en tabla tbltiene en el campo cod_factura este procedure lo puede hacer la cosa es que si el sistema esta en red me entiendes varias aplicaciones conectadas a la misma base de datos (cliente servidor).Porque un cliente "a" ejecuta el procedimiento insertar_factura y otro cliente "b" tambien ejecuta el procedimiento insertar_factura entoces caimos en esto que el cliente "b" ejecuta primero el procedimiento que retorna el numero generado por ejemplo el procedimeinto tu yo (CREATE PROCEDURE GET_NEXT_CODI_CLIE), al momento de seleccionar el valor selecciona la correcta o selecciona el ultimo numero generado y no es la correcta por primero el cliente "a" solicito el procedimiento insertar_factura. CREATE PROCEDURE GET_NEXT_CODI_CLIE RETURNS (NUEVO_CODI_CLIE long) AS BEGIN /*Obtienes el valor actual del generador sin incrementarlo*/ /*Observa el incremento en cero en la función gen_id*/ NUEVO_CODI_CLIE=CAST(gen_id(codi_gener,0)+1 AS VARCHAR(7)); SUSPEND; END espero que me puedas ayudar.... |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|