Re: [firebase-br] Não Gera Erro WITH LOCK

Rodrigo Pires digaoblues em hotmail.com
Ter Jul 10 10:12:19 -03 2007


O que deve estar acontecendo ai é que a opcao no wait nao esta sendo setada 
"dm.Conexao.Params.Strings[11]:='False';" da uma olhada nisso

[]s



>From: Jorge Henrique - América Móveis<jorgehenrique em americamoveis.com>
>Reply-To: FireBase <lista em firebase.com.br>
>To: Lista - FireBase <lista em firebase.com.br>
>Subject: Re: [firebase-br] Não Gera Erro WITH LOCK
>Date: Tue, 10 Jul 2007 07:51:17 -0300
>
>Eu acredito que seja por causa do IBSQL.Free. A transação fica mto pouco
>tempo aberta, haja visto que vc descarrega o componente da memoria após
>IBSQL.Open. Me corrijam se eu estiver equivocado...
>
>Tente fazer com componentes "reais" ao invés de criá-los em runtime.
>
>[]´s
>Jorge Henrique
>
>Anderson Miranda Barrozo escreveu:
> > Jorge Henrique,
> >
> >    A coisa ta mais complicada que eu pensava. Eu fiz o que vc falou mas
> > continua a mesma coisa. Nao da erro. Veja o meu codigo abaixo. Eu criei 
>uma
> > funcao e coloquei evento afteredit.
> >
> > procedure TTCadArea.TravaRegistro(Arquivo, Campo: String; DS:TDataSet);
> > var
> > //  TD: TTransactionDesc;
> >   IBSQL: TSQLDataSet;
> > begin
> > IBSQL := TSQLDataSet.Create(Application);
> > Try
> >    Randomize;
> >    { Abre uma transação para controlar o processamento todo }
> >    TD.TransactionID := Random(65635);
> >    TD.IsolationLevel := xilREADCOMMITTED;
> >    dm.Conexao.Params.Strings[11]:='False';
> >    DM.Conexao.StartTransaction(TD);
> >    IBSQL.SQLConnection := DM.Conexao;
> >    IBSQL.Close;
> > //   IBSQL.CommandText := 'UPDATE '+Arquivo+ ' SET '+Campo+' = '+Campo+'
> > WHERE '+Campo+'='+Ds.FieldByName(Campo).AsString;
> >    IBSQL.CommandText := 'SELECT '+Campo+ ' FROM '+Arquivo+' WHERE
> > '+Campo+'='+Ds.FieldByName(Campo).AsString+' WITH LOCK';
> >    Try
> >       IBSQL.Open;
> >    except on E: Exception do {Em caso de erro, aborta todo processamento 
>}
> >       bEGIN
> >       SHOWMESSAGE('TRAVOU');
> >       if DM.Conexao.InTransaction then
> >          DM.Conexao.Rollback(TD);
> >       eND;
> >    End;
> > finally
> >    IBSQL.Free;
> > end;
> >
> >
> >
> > 
>////////////////////////////////////////////////////////////////////////////////////////////////////
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>Para editar sua configuração na lista, use o endereço 
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa

_________________________________________________________________
Seja um dos primeiros a testar o novo Windows Live Mail Beta- grátis. Acesse 
http://www.ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d





Mais detalhes sobre a lista de discussão lista