[firebase-br] DBExpress - Utilizar SQLDataSet e ClientDataSet

User-Ba meus.foruns em embytes.com.br
Seg Jun 6 15:54:42 -03 2005


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





Mais detalhes sobre a lista de discussão lista