Re: [firebase-br] Críticas ao DBExpress
Francisco Thiago
jeandeadlucky em yahoo.com.br
Seg Jun 13 19:17:09 -03 2005
Mesmo não sendo o Paulo, gostaria de falar.
O TDataSetProvider controla todas as transações. Logo, se você fizer um
relacionamento MestreDetalhe, você não precisará se preocupar com as
transações, que o Provider vai cuidar delas pra você.
Detalhe: Só é possível caso você use o NestedTable (através do
TDataSetField)
Agora, caso não seja possível este relacionamento, a única forma que EU
conheço é criar uma procedure que faça as devidas alterações no banco.
iniciando uma transação
var
lt_T :TTransactionDesc;
{adicionar DBXpress no uses}
begin
Randomize;
lt_T.TransactionID := Random(65535);
lt_T.IsolationLevel := xilREADCOMMITTED;
DBXConnection.StartTransaction(lt_T);
try
// faça algo
DBXConnection.Commit(lt_T);
except
DBXConnection.RollBack(Transaction)
end;
end;
Espero ter ajudado
Francisco Thiago de Almeida
Enter&Plug Informática
Divisão: Desenvolvimento e Banco de dados
MSN: thiago em enterplug.com.br
Skype: enterplug_thiago
----- Original Message -----
From: "Antonio Carlos" <a.lima.silva em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, June 13, 2005 6:15 PM
Subject: Re: [firebase-br] Críticas ao DBExpress
Paulo, vi sua resposta abaixo e tenho a seguinte dúvida :
Uso SqlDataSet + DataSetProvide + ClienteDataSet
via de regra com o command test = select * from tabela where chave(s) = id
bom eu preciso agora fazer algumas operacoes dentro de uma transacao, se
algo nao der certo, todas as operacoes devem dar roolback
mas dbx nao tem componente transaction como a paleta IBX que bastava ligar
todos os processos nele e dar rollback na transacao voltava tudo atrás.
Como voce faz essa transação explicita com SqlDataSet + DataSetProvide +
ClienteDataSet ?
Creio que haverá outros com a mesma duvida.
Obrigado.
Antonio Carlos
----- Original Message -----
From: "Paulo Geloramo" <paulogeloramo em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, June 13, 2005 5:29 PM
Subject: Re: [firebase-br] Críticas ao DBExpress
> 1) Qual driver devo utilizar o da Bolrand ou da UBI?
Estou usando o driver da Borland.
Testei o driver da UIB, ocorreu problema em campos FMTBCD que é o padrão no
driver da Borland, mas não naquele.
> 2) Voce esta tendo algum problema como a transacao de leitura que o DBX
> abre internamente e aparente mente nao fecha?
Não tive problemas.
Observando id da transação através da estatistica do Firebird 1.5.2,
notei que o id é alterado (pode ser commit), mas não entendi qual o critério
para
alterar o id, pois não ocorre em cada ApplyUpdate(0).
Fiz o seguinte teste:
Select
ApplyUpdate(0)
Estatistica
... 30 vezes
Insert
ApplyUpdate(0)
Estatistica
... 30 vezes
Update
ApplyUpdate(0)
Estatistica
...30 vezes
Delete
ApplyUpdate(0)
Estatistica
...30 vezes
> 3) Alguma dica para quem esta começando?
Usei SQLDataSet+DataSetProvider+ClientDataSet com a transação
implicita, usei a transação explicita somente quando necessario.
>
> Aqui na empresa utilizamos o TClientDataSet + TDataSetProvider + TQuery
> como DB2 para AS/400 e nao temos problema, basicamente o que muda e a
> transacao de cada banco (o DB2 nao abre uma transacao para as leituras).
>
> Obrigado.
>
> PHA
> Nova Odessa / SP - Brazil
>
> -----Mensagem original-----
> From: "Paulo Geloramo" paulogeloramo em terra.com.br
> Date: Mon, 13 Jun 2005 12:06:15 -0300
> To: "FireBase" lista em firebase.com.br
> Subject: Re: [firebase-br] Críticas ao DBExpress
>
>> Ola Evandro, confesso que agora eu fiquei sem entender,
>> pois se você ficar com medo de usar uma ou outra dll, então
>> posso concluir, com toda certeza, que tens medo de usar
>> Firebird no Windows, a menos que consiga usá-lo sem as
>> vitais dlls, no mais, a imensa maioria dos aplicativos usam
>> dll e podemos dizer que a dll é a alma ou seria o coração
>> do Windows, mas tenho que concordo com você em uma
>> coisa, realmente da medo.
>>
>> []s
>> Paulo Geloramo
>>
>> ps.: Tenho usado o DBExpress com Firebird com sucesso e recomendo.
>>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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
____________________________________________________
Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! http://mail.yahoo.com.br
Mais detalhes sobre a lista de discussão lista