[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