[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