[firebase-br] Atualização de campo

W O sistemas2000profesional em gmail.com
Ter Fev 4 18:12:21 -03 2014


Si te dice que hay transacciones activas es porque alguna transacción no
hay finalizado ni con un COMMIT ni con un ROLLBACK.

Puedes ver cual es esa transacción entrando en la ventanita "Símbolo del
sistema" y ejecutando el comando:

GSTAT -h

Puedes leer más en este artículo:

http://firebird21.wordpress.com/2013/12/07/un-ejemplo-de-transacciones-mal-administradas/

Saludos.

Walter.





2014-02-04 Julio F. Figueiredo <tuskinhu em gmail.com>:

> WO,
>
> Sim, mas o banco já está criado assim em produção PK (Material, Lote).
>
> Estou fazendo como você falou, dou um drop na primary key, mas neste
> momento ele me retorna um erro que diz que o índice está sendo usado
> dizendo que existem transações ativas, portando não consigo trocar o campo,
> mesmo o banco nao sendo utilizado por ninguém, somente eu fazendo testes.
>
> Como acabar com estas transações?
>
>
>
>
> ________________________________________
> Att,
> *Julio F. Figueiredo*
> *Analista de Sistemas*
>
>
> 2014-02-04 W O <sistemas2000profesional em gmail.com>:
>
> > Cuando nadie esté usando la Base de Datos hazle un sweep.
> >
> > Además, no puedes cambiar una columna de una Primary Key sin antes borrar
> > la Primary Key. Así que primero borras la Primary Key, cambias las
> > columnas, y vuelves a crear la Primary Key.
> >
> > De todas maneras, usar un VARCHAR() como Primary Key es un error de
> > concepto. Las Primary Key deberían ser subrogadas, es decir que las
> > columnas que la componen se usen para la Primary Key y para nada más.
> >
> > Por lo tanto, lo mejor es que tu Primary Key sea una columna numérica,
> > autoincremental. El número de Lote o cualquier otra columna puedes
> > establecer como Unique Key si quieres, pero nunca como Primary Key.
> >
> > Saludos.
> >
> > Walter.
> >
> >
> >
> > 2014-02-04 Julio F. Figueiredo <tuskinhu em gmail.com>:
> >
> > > Bom dia,
> > >
> > > Estou fazendo uma atualização de um campo chamado de LOTE, hoje ele tem
> > > varchar(12) estou passando pra varchar(24), está inserido em uma PK
> junto
> > > com um campo Material.
> > >
> > > Bom, em alguns bancos ele conseguiu fazer a atualização.
> > >
> > > O que me está dando dor de cabeça é que em alguns bancos ao dropar o
> > índice
> > > ele diz que existem transações ativas.
> > >
> > > Como faço pra em algum momento eu matar essas transações ativas?
> > >
> > > Sequencia de comandos:
> > >
> > > CREATE DOMAIN DM_LOTE AS VARCHAR(24) CHARACTER SET WIN1252 COLLATE
> > > WIN_PTBR';
> > >
> > > ALTER TABLE LOTES DROP CONSTRAINT INTEG_209;
> > >
> > > update RDB$RELATION_FIELDS set
> > >            RDB$FIELD_SOURCE = 'DM_LOTE'
> > >            where (RDB$FIELD_NAME = 'LOTE') and
> > >           (RDB$RELATION_NAME = 'LOTES';
> > >
> > > ALTER TABLE LOTES ADD CONSTRAINT PK_LOTES PRIMARY KEY (MATERIAL,LOTE);
> > >
> > >
> > >
> > > ________________________________________
> > > Att,
> > > *Julio F. Figueiredo*
> > > *Analista de Sistemas*
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista