Fórum Firebird e DBExpress #297432

28/09/2005

0

Amigos, como preencho os componentes: TSQLConnection, TDataSource, TSQLTable?
Preenchi utilizando o driver interbase, ele conectou e achou os campos no TSQLTable, mas quando fui associar um DBGrid ao Datasource, apareceu a mensagem: Operation not allowed on a unidirectional dataset.

Pode ser cabaçada, mas não to conseguindo.


Doug_chagas

Doug_chagas

Responder

Posts

28/09/2005

Gandalf.nho

DBGrid não pode ser usado em datasets unidirecionais como o DbExpress, vc terá que usar um ClientDataSet como intermediário.


Responder

Gostei + 0

28/09/2005

Bruno Belchior

o dbExpress é unidirecional, pra vc utilizar DbGrid terá de usar o ClientDataSet também...


Responder

Gostei + 0

28/09/2005

Doug_chagas

DBGrid não pode ser usado em datasets unidirecionais como o DbExpress, vc terá que usar um ClientDataSet como intermediário.


Então que componentes eu preciso ter no meu datamodule para colocar uma tabela do firebird em uma dbgrid?

Valew


Responder

Gostei + 0

28/09/2005

Doug_chagas

Amigos, como preencho os componentes: TSQLConnection, TDataSource, TSQLTable? Preenchi utilizando o driver interbase, ele conectou e achou os campos no TSQLTable, mas quando fui associar um DBGrid ao Datasource, apareceu a mensagem: Operation not allowed on a unidirectional dataset. Pode ser cabaçada, mas não to conseguindo.



Responder

Gostei + 0

28/09/2005

Mmbarros

Amigo:

Boa tarde!
Utilizo o Deloh 7 com componentes da paleta DbExpress...para associar Um DBGrid a um Datasource utiliza o componente TSimpleDataSet e configure as seguintes propriedades dele:

Connection: Aponte para o componente TSQLConnection;
Dataset.CommandText: Coloque a instrução SQL;
Actve = True;



No componete TDataSource aponte o DataSet para o componete TSimpleDataSet que voçê acabou de configurar e pronto é associar o DBGrig a este DataSource.

Em resumo considere o componente TSimpleDataSet como uma Query normal...

Espero que tenha ajudado pelo menos comigo funciona deste Jeito.


Responder

Gostei + 0

28/09/2005

Marceloho

Seria melhor vc utilizar os componentes SQLDataSet, DataSetProvider e ClientDataSet para acessar os dados via DBExpress.

No site da clubedelphi vc ira achar muita coisa sobre isso. Em todos os lugares q ja encontrei como acessar os dados fica bem claro que esta eh a melhor maneira de se acessar os dados via DBExpress.


Responder

Gostei + 0

28/09/2005

Doug_chagas

Seria melhor vc utilizar os componentes SQLDataSet, DataSetProvider e ClientDataSet para acessar os dados via DBExpress. No site da clubedelphi vc ira achar muita coisa sobre isso. Em todos os lugares q ja encontrei como acessar os dados fica bem claro que esta eh a melhor maneira de se acessar os dados via DBExpress.


Amigo, to um tempão tentando, apanhando pras propriedades desses componentes. Se vc puder me mandar um exemplo de conexão de uma unica tabela pra eu ver funcionando, depois eu me viro.

Se puder me fazer o grande favor de descrever algumas propriedades principais como o amigo acima fez...

Valew,
Doug


Responder

Gostei + 0

28/09/2005

Vinicius2k

Colega,

Utilizar a [url=http://forum.clubedelphi.net/search.php]ferramenta de Pesquisa do fórum[/url] pode lhe poupar muito tempo de espera.
Vide estes tópicos:
http://forum.clubedelphi.net/viewtopic.php?t=51221
http://forum.clubedelphi.net/viewtopic.php?t=51337

T+


Responder

Gostei + 0

30/09/2005

Doug_chagas

Amigos,

Instalei um drive ODBC do firebird 1.5 e fiz a conexão com os componentes da paleta BDE. TDataBase e TTable. Ta funfando.
Alguma objeção?

Valew,
Doug


Responder

Gostei + 0

30/09/2005

Vinicius2k

Bem, fica a seu critério, mas...

1. TTables não devem ser utilizados com SGBDs como o Firebird, pois ferem o princípio básico de aplicações C/S: trazem todos os registros para o lado do cliente.

2. ODBC é mais lento que qualquer camada de acesso nativa ou dbExpress.

3. BDE não é mais suportado pela Borland. Se quiser utilizar ODBC, acho que vc deveria utilizar a camada ADO.

Vc decide...

T+


Responder

Gostei + 0

04/10/2005

Doug_chagas

Bem, fica a seu critério, mas... 1. TTables não devem ser utilizados com SGBDs como o Firebird, pois ferem o princípio básico de aplicações C/S: trazem todos os registros para o lado do cliente. 2. ODBC é mais lento que qualquer camada de acesso nativa ou dbExpress. 3. BDE não é mais suportado pela Borland. Se quiser utilizar ODBC, acho que vc deveria utilizar a camada ADO. Vc decide... T+


Amigo, um outro forista disse que utiliza a paleta IBX. Algum problema tbm? Tem uma apostila no site tbm que ensina usando esta paleta.

Valew.


Responder

Gostei + 0

04/10/2005

Vinicius2k

Nenhum problema. O IBX é excelente ! Em muitas situações mais prático e rápido que o dbExpress.

O único ´porém´ é o IBX é, e sempre será, feito para o IB. Ninguém pode garantir até quando ele será compatível com futuras versões do FB. No caso do dbExpress vc pode apenas trocar o driver para um driver escrito especificamente para FB, caso o driver atual para IB deixe de trabalhar corretamente.

T+


Responder

Gostei + 0

09/10/2005

Letb

Sobre IBX, pessoalmente fiz umas comparações usando o DBExpress e o IBX e o IBX é muito mais ágil, porém, sua aplicação fica presa a Interbase e Firebird.

Mas queria aproveitar o tópico para tirar uma dúvida. Afinal usar o tSimpleClientDataSet (ou SQLClientDataSet) não seria mais simples do que usar o trio de componentes que todo mundo defende?

Quais seriam os prós e contra de reunir os 3 componentes em 1 somente?

Vlw!


Responder

Gostei + 0

11/10/2005

Vinicius2k

Sem contar que tudo que é mais simples, normalmente, é pior? :)

Brincadeiras à parte, o TSimpleDataSet e TSQLClientDataSet são componentes ´bugados´ por natureza e ninguém recomenda seu uso (nem a própria Borland). Muitos erros ´inexplicáveis´ e ´insolúveis´ são causados por eles.

Esquecendo isto, um único componente que encapsule várias outras classes (na verdade ele pode ser 4 em 1 pq pode encapsular também a conexão), sempre perde na disponibilidade de recursos de todas as classes em separado, sem contar que perde também na confiabilidade.

Não encare dbExpress e Midas (TDataSetProvider e TClientDataSet) como sendo uma camada única. Vc pode usar a Midas com qualquer camada de acesso. Eu, por exemplo, utilizo com dbExpress e ADO (depende do SGBD).
Se vc a utilizar (a Midas) para fazer todo o tramento dos dados, migrar de SGBD é muito simples: Substitua a camada de acesso e adapte as instruções SQL ao SGBD (se necessário) e 90¬ do trabalho estará concluído.

O único diferencial é que com dbExpress vc é quase obrigado a utilizá-la por este ser unidirecional.

T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar