Fórum Como estabelecer conexão com carquivo .mdb #284619

14/06/2005

0

Pessoal
Preciso abrir um arquivo .mdb
Tentei por BDE mas ao acessar uma tabela, ele diz que o arquivo é muito grande e ele não suporta abrir. Tentei por ADO mas não consegui fazer a conexão por este componente. Não sei se ele abre este tipo de base de dado.
Alguém poderia me ajudar a abrir este arquivo em um Grid?
Valew


Seu_madruga

Seu_madruga

Responder

Posts

14/06/2005

Marcio.theis

Coloca o endereço de seu e-mail, que eu te envio um exemplo.


Responder

Gostei + 0

14/06/2005

Paullsoftware

de uma olhada nesse tópico ...
[url]http://forum.clubedelphi.net/viewtopic.php?t=56313&highlight=[/url]
ou entrão use:
[url]http://forum.clubedelphi.net/viewtopic.php?t=53623&highlight=[/url]

qq coisa estamos ai... :D


Responder

Gostei + 0

14/06/2005

Sandra

Tentei por ADO mas não consegui fazer a conexão por este componente. Não sei se ele abre este tipo de base de dado.

Utilizando o componente ADOConnection (paleta ADO), a conexão pode ser feita assim:
- clique nas elipses da propriedade ConnectionString, selecione a opção ´Use Connection String´ (default) e clique em ´Build...´;
- na aba Provedor, escolha ´Microsoft Jet 4.0 OLD DB Provider´, depois ´Avançar>>´;
- Conexão: 1. faça a busca do seu arquivo.mdb e ´Testar conexão´;
- se estiver tudo certo, aparecerá a mensagem *Teste de conexão concluído com êxito.* e finalize;
- propriedade LoginPrompt = False.

Inserir ADOTable (por exemplo) e DataSource.
- ADOTable: na propriedade ADOConnection = ADOConnection1, TableName: nome da sua tabela e Active = True.
- DataSource: DataSet = AdoTable1.

No DBGrid: propriedade DataSource = DataSource1 e um duplo clique na Grid para incluir os dados desejados.

Acho que é só. Boa sorte!


Responder

Gostei + 0

15/06/2005

Seu_madruga

Valew Sandra funcionou!
Mas agora tenho um outro probleminha. Tenho uma tabela muito grande, com mais ou menos 500.000 registros e preciso abrir ela. Tem como eu selecionar estes registros trazendo uma quantidade X de registros por vez?


Responder

Gostei + 0

15/06/2005

Rjun

Você precisa realmente trazer todos? Por que você não faz uma filtragem antes de puxar os registro da tabela?


Responder

Gostei + 0

15/06/2005

Seu_madruga

Você precisa realmente trazer todos? Por que você não faz uma filtragem antes de puxar os registro da tabela?


NA verdade peciso sim trazer todos, o problema está na cláusula SQL do ADODataSet, eu estou colocando o famoso ´SELECT * FROM TABELA´ pois preciso de todos um a um. Será que não existe na cláusula SQL alguma coisa que me traga de pouco em pouco por vez? Igual a propriedade PacketRecords do ClientDataSet


Responder

Gostei + 0

15/06/2005

Rjun

Dê uma olhada na propriedade ExecuteOptions do ADOQUERY. Nela você configura como True a opção eoAsyncFecthNonBlocking. Feito isso, você pode configurar a propriedade CacheSize com a quantidade de registros que você quer trazer da tabela. Dependedo do que você for fazer, isso ajudará.


Responder

Gostei + 0

15/06/2005

Seu_madruga

Bacana! O que faz exatamente esta opção:

´eoAsynceoAsyncFecthNonBlocking´ pois a opção CacheSize do ADBDAtaSet já está por default em 1, pra funcionar isso é preciso abilitar a opção ´eoAsynceoAsyncFecthNonBlocking=TRUE´ ?
A opção CacheSize é o número de registro que ele irá trazer por vez?


Responder

Gostei + 0

15/06/2005

Rjun

A propriedade CacheSize é a quantidade de registros que ele irá trazer a cada leitura. Tem o enveto OnFetchComplete(acho q é isso) que é disparado quando a leitura é finalizada.


Responder

Gostei + 0

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

Aceitar