Como estabelecer conexão com carquivo .mdb
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
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
Curtidas 0
Respostas
Marcio.theis
14/06/2005
Coloca o endereço de seu e-mail, que eu te envio um exemplo.
GOSTEI 0
Paullsoftware
14/06/2005
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
[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
GOSTEI 0
Sandra
14/06/2005
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!
GOSTEI 0
Seu_madruga
14/06/2005
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?
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?
GOSTEI 0
Rjun
14/06/2005
Você precisa realmente trazer todos? Por que você não faz uma filtragem antes de puxar os registro da tabela?
GOSTEI 0
Seu_madruga
14/06/2005
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
GOSTEI 0
Rjun
14/06/2005
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á.
GOSTEI 0
Seu_madruga
14/06/2005
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?
´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?
GOSTEI 0
Rjun
14/06/2005
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.
GOSTEI 0