Firebird e DBExpress
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.
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
Curtidas 0
Respostas
Gandalf.nho
28/09/2005
DBGrid não pode ser usado em datasets unidirecionais como o DbExpress, vc terá que usar um ClientDataSet como intermediário.
GOSTEI 0
Bruno Belchior
28/09/2005
o dbExpress é unidirecional, pra vc utilizar DbGrid terá de usar o ClientDataSet também...
GOSTEI 0
Doug_chagas
28/09/2005
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
GOSTEI 0
Doug_chagas
28/09/2005
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.
GOSTEI 0
Mmbarros
28/09/2005
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.
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.
GOSTEI 0
Marceloho
28/09/2005
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.
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.
GOSTEI 0
Doug_chagas
28/09/2005
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
GOSTEI 0
Vinicius2k
28/09/2005
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+
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+
GOSTEI 0
Doug_chagas
28/09/2005
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
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
GOSTEI 0
Vinicius2k
28/09/2005
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+
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+
GOSTEI 0
Doug_chagas
28/09/2005
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.
GOSTEI 0
Vinicius2k
28/09/2005
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+
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+
GOSTEI 0
Letb
28/09/2005
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!
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!
GOSTEI 0
Vinicius2k
28/09/2005
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+
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+
GOSTEI 0