[firebase-br] Duvida Consulta e transação

Gladiston Santana gladiston em vidy.com.br
Seg Jun 4 15:10:33 -03 2018


Na realidade ao conectar-se você está sob uma transação.
A transação não é apenas a confirmação ou não de um lote de eventos que
aconteceram, mas ela está ligada a algumas definições que lhe permitam ver
ou atuar sob dados ainda não commitados de outras estações ou esperar ou
não pela confirmação de transações pendentes ao acessar uma informação.
Todos os updates ou selects que não estiverem associados explicitamente a
uma transação, certamente estarão sob uma transação criada(ou reutilizada)
implicitamente pelo componente que fez a conexão

Queries repetitivas você pode prepará-las uma vez e executá-la varias
vezes, ex:

ao criar o form:
q1.sql.clear;
q1.sql.add('select campo1, campo2, campo3');
q1.sql.add(' from contatos');
q1.sql.add('where nome containing :p_nome');

if not q1.prepared then q1.prepare;

ao disparar suas buscas num enter do tedit:
if q1.active then q1.close;
q1.parambyname('p_nome').AsString:=edti1.text;
q1.open;

quando finalizar o form:
if q1.prepared then q1.unprepare;

Suas queries de buscas serão bem mais rapidas.
A menos que a tabela seja pequena, eu aconselho a não usar  CONTAINING a
menos que queira desprezar os indices, tente o LIKE e deixe que a pessoa
defina 'iniciar com', 'contendo' ou 'finalizando com' num caixa de
combobox, daí poderá determinar a posição do '%' num like e as vezes
permitir ao programa consentir em usar um indice.

.
inte+

Em 4 de junho de 2018 10:23, Carlos <lcarlos2000 em bol.com.br> escreveu:

>
>  Bom dia,
>
> Estou usando Firebird com IBX e tenho uma duvida, toda vez que faço uma
> consulta SQL é aberta automaticamente uma transação no Firebird? por
> exemplo, se eu fizer uma consulta 5 vezes usando a mesma query (como
> mostrado abaixo) serão abertas 5 transações ou somente 1 transação?
>
>
> QryContatos.Close ;
> QryContatos.SQL.Clear;
> QryContatos.SQL.Text:= 'SELECT * FROM CONTATOS WHERE NOME CONTAINING ' +
> quotedstr(edPESQ.Text) + ' ORDER BY NOME';
> QryContatos.Open;
> ______________________________________________
> 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://www.firebase.com.br/
> pesquisa_lista.html



Mais detalhes sobre a lista de discussão lista