[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