[firebase-br] DBExpress - Utilizar SQLDataSet e ClientDataSet

Francisco Thiago jeandeadlucky em yahoo.com.br
Seg Jun 6 18:48:24 -03 2005


Luciano,

Seja bem vindo a lista!

Quanto a sua opção pelo DBExpress, eu acho sensata, não por ser como a 
minha, mas pelo fato de que você considerou portabilidade. Com o DBXpress, 
como você deve ter lido, o seu sistema não fica preso a um só banco de dados 
e esse será o seu caso certo (o uso de vários bancos)?

O Firebird é um ótimo banco para se começar. Leve, de simples instalação e 
com cara de banco grande. Caso futuramente você se mude para Oracle, 
acredito que a mudança não será tão drástica (um pouquinho só :D).

Existe uma promessa que nas versões futuras do FB, ele fique mais ágil na 
internet. Logo, acho que o seu MySQL vai durar pouco tempo. Aliás, leia a 
licença do MySQL. Ao concluí-la, acredito que vai desistir dele :D


Quanto ao meio de usar (DBWare ou não). Caso você não faça o uso de 
StoredProcedures, eu aconselho que você utilize o SQLDataSet -> 
DataSetProvider -> CDS pelo simples fato que:

O DataSetProvider faz a mesma coisa, só que tudo encapsulado nele... Ou 
seja, o controle de transação, os insert's, updates's delete's são todos 
gerados pelo DataSetProvider. Logo, acredito que seja um trabalho a menos 
pra você. A arquitetura é apenas um pouco mais complicada (Tem muitos 
detalhes e alguns "jeitinhos") mas compensa.

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: "User-Ba" <meus.foruns em embytes.com.br>
To: <lista em firebase.com.br>
Sent: Monday, June 06, 2005 3:54 PM
Subject: [firebase-br] DBExpress - Utilizar SQLDataSet e ClientDataSet


>
> Olá a todos!
>
> Este é o meu primeiro post para a lista.
> Sei que é um chavão, mas acretido que a apresentação abaixo não pode ser 
> omitida :)
> Meu nome é Luciano e sou um usuário Delphi no estado da Bahia.
>
> Conheci o Delphi na vs 5, fiz alguns modestos utilitários com a vs 6 e 
> atualmente utilizo a Vs 7.
> Desenvolvi poucos aplicativo (DeskTop), no caso, ainda utilizando o banco 
> de dados Paradox.
>
> Resolvi então direcionar meu aprendizado
> para utilização do Delphi com Banco de Dados,
> optando pelo Firebird como base de dados.
>
> Depois de ler as diversas opiniões a respeito dos componentes de acesso,
> resolvi optar pelo DBExpress , levado pelos motivos de:
> -Encontrar algumas Literaturas (livros e apostilas) que abordam a 
> utilização de tais componentes,
> -Não ter encontrado literaturas nacionais para Delphi + Firevird + IBO,
> -Pretender futuramente acessar bases MySQL para utilização na WEB,
> neste caso também, tenho encontrado algumas literaturas com a utilização 
> do DBExpress.
>
> * Gostaria de opiniões a respeito desta minha escolha.
>
> É isto, sou um iniciante em programação com BDs
> e espero poder contar com vocês, para me auxiliarem em alguns passos.
>
> Fica a promessa, de só recorrer a vocês quando as minhas tentativas
> no Help, apostilas e livros estiverem se esgotada Ok?. :)
>
> Como meu primeiro exercicio criei com auxilio do IB Expert
> um Banco AGENDA.FDB e 1 Tabela AGENDA para ir praticando os comandos.
>
> De inicio gostaria que me esclarecessem o seguinte:
>
> Seria melhor eu utiliza os componentes -> SQLConnection e SQLDataSet
> para promover Inserts, Updates e Deletes no banco conforme abaixo:
>
> procedure TForm1.Button2Click(Sender: TObject);
> begin
>  Try
>    Transacao.TransactionID  := 1;
>    Transacao.IsolationLevel := xilREPEATABLEREAD;
>
>    sc_Agenda.StartTransaction(Transacao);
>
>    sds_Agenda_reg.Close;
>    sds_Agenda_reg.CommandType := ctQuery;
>    sds_Agenda_reg.CommandText := 'insert into AGENDA(CHAVE, NOME, 
> TELEFONE) 'values(:PCHAVE, :PNOME, :PTELEFONE)';
>
>    sds_Agenda_reg.ParamByName('PCHAVE').AsString := Edit1.Text;
>    sds_Agenda_reg.ParamByName('PNOME').AsString  := Edit2.Text;
>    sds_Agenda_reg.ParamByName('PTELEFONE').AsString := Edit3.Text;
>
>    sds_Agenda_reg.ExecSQL;
>    sc_Agenda.Commit(Transacao);
>
>  Except on Exc:Exception do
>    Begin
>      ShowMessage('Ocorreu um erro na tentativa de inclusão do registro: ' 
> + Exc.Message);
>      sc_Agenda.RollBack(Transacao);
>    End;
>  End;
> end;
>
> Neste caso, não utilizando os componentes DBWares...
>
> * Gostaria de opiniões a respeito da forma de utilização do código acima.
>
> Ou seria melhor utilizar os componentes SQLConnection -> SQLDataSet -> 
> DataSetProvider -> ClientDataSet -> DataSource
> e fazer por exemplo: UPDATES conforme abaixo:
>
> cds_agenda.Post;
> cds_agenda.ApplyUpdates(0);
>
> Neste caso utilizado os componentes DB.
>
> * Gostaria de opiniões a respeito da forma de utilização do código acima.
>
> Aproveitando!
> Estou a procura do livro do
> Srs. Bastiaan Pieter e Marcelo Frank
> "Delphi 6 Cliente/Servidor com Firebird/Interbase - Aplicação de PDV e 
> Controle de Estoques"
> citado em um artigo no site www.firebase.com.br
> Já procurei em diversos livrarias (ecommerce),
> mas sempre o produto está em falta no estoque.
> Caso algum de vocês o possua e pretenda revendê-lo,
> favor enviar proposta diretamente para o meu email.
>
> Obrigado a todos desde já,
> e desculpem a extensão do meu primeito Post.
>
> Abraços
> Luciano-User-BA
>
>
> ______________________________________________
> 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