Fórum Dúvida no DBExpress #283328
30/05/2005
0
Paulo
Curtir tópico
+ 0Posts
30/05/2005
Vinicius2k
Só se vc não utilizasse controles DB-Aware... como o dbExpress é unidirecional, para que vc tenha o buffer necessário para navegação bidirecional, é necessária a utilização do TDataSetProvider + TClientDataSet.
Vc *pode* (mas não deve) utilizar o TSimpleDataSet (ou TSQLClientDataSet no Delphi 6). Este componente embute o SQLDataSet, o DataSetProvider e o TClientDataSet, e até mesmo a TSQLConnection. Apesar de simplificar o uso, este componente é altamente [b:19850a9778]não-recomendado[/b:19850a9778] por todos, inclusive pela Borland.
Se vc quiser fazer um bom trabalho, terá que se acostumar com a quantidade de componentes.
[b:19850a9778]SQLConnection -> TSQLDataSet -> TDataSetProvider -> TClientDataSet -> TDataSource -> controles DB-Aware.[/b:19850a9778]
PS: Vc mencionou ´TDataSet´ e presumo que tenha sido um erro de digitação pois *deve* trata-se de um TDataSource. Está correto ?
T+
Gostei + 0
30/05/2005
Kotho
Gostei + 0
30/05/2005
Vinicius2k
A Midas (TDataSetProvider e TClientDataSet) pode ser utilizada com qualquer camada de acesso, não sendo uma caraterística exclusiva do dbExpress.
A associação, quase automática, se deve ao fato de que, se for necessário o uso de DB-Aware ou navegação bidirecional no dbExpress, vc precisa da Midas até mesmo em 2 camadas.
Concorda?
T+
Gostei + 0
30/05/2005
Microbios
blz?
Você citou o conjunto de componentes para acesso via DBEXPRESS:
SQLConnection -> TSQLDataSet -> TDataSetProvider -> TClientDataSet -> TDataSource ->
posso usar no lugar do TSQLDataset um TSQLTABLE ?
Quais seriam os prós e os contras? Ou deveria mesmo mudar de cara, para o TSQLDATASET.... Sendo que pretendo trabalhar com controles DBAWARE normais, e não usar o SQL para inserção, exclusão e alteração. Uso Post->ApplyUpdates, Edit->Post->ApplyUpdates em um sistema pequeno e tem funcionado blz? O que vc acha disso?
Raphael.
São João Nepomuceno-MG :D
Gostei + 0
30/05/2005
Vinicius2k
Vc pode usar TSQLTable, só não deve.
Active := True em um TSQLTable equivale a ´select * from <TABELA>´, ou seja, sem especificar colunas, sem qualquer filtro WHERE, sem utilização de índices por ORDER BY, etc... Resumindo, sem nenhum recurso Cliente/Servidor que otimize o desempenho da aplicação.
Por estes motivos, TxxxDataSets são sempre melhores do TxxxTables. Na verdade, as TxxxTables e TxxxQueries só existem para facilitar a migração de aplicações baseadas em camadas de acesso mais antigas.
Eu recomendo que vc utilize TSQLDataSets e SQL para que a sua aplicação seja escalável e para que vc não se assuste mais tarde com problemas e desempenho. Sendo que o SQL pode ser utilizado apenas para os ´Selects´, mantendo o uso da Midas para trabalhar os dados da forma que vc está habituado.
T+
Gostei + 0
31/05/2005
Microbios
É como te falei.... Uso do TxxxTable em um aplicativo pequeno, desktop.
sem nenhum multiusuário e nem probabilidades remotas de ´haver um client/server!.´ Mas mesmo assim vou mudar. Eu estou migrando alguns aplicativos e não estou inteiramente ´por dentro´ do mundo client/server.
Obrigado pela explicação, retirou algumas dúvidas minhas.
Abraços.
Raphael
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)