Limite de registros no ADO com Access
Bom dia pessoal
Tenho uma tabela em Access (2010), onde faço um filtro (select campo from tabela wehre campo = condicao), no Access sei que com essa condição existem 126.000 registros, mas no Delphi (2010) o AdoQuery só me mostra 65.530 registros.
Observei também que se tentar copiar do Access e colar no Excel (2010) só aceita copiar os 65.530 registros.
Tenho uma tabela em Access (2010), onde faço um filtro (select campo from tabela wehre campo = condicao), no Access sei que com essa condição existem 126.000 registros, mas no Delphi (2010) o AdoQuery só me mostra 65.530 registros.
Observei também que se tentar copiar do Access e colar no Excel (2010) só aceita copiar os 65.530 registros.
Welder.
Curtidas 0
Respostas
Bruno Leandro
28/03/2013
e não sei se existe esse limite para o access, mas tenta filter pelo ADO sem o where, e veja quantos registros retornam
GOSTEI 0
Welder.
28/03/2013
e não sei se existe esse limite para o access, mas tenta filter pelo ADO sem o where, e veja quantos registros retornam
Boa tarde.
Então, fazendo um select * from tabela só apresenta os mesmos 65.530
GOSTEI 0
Welder.
28/03/2013
e não sei se existe esse limite para o access, mas tenta filter pelo ADO sem o where, e veja quantos registros retornam
Boa tarde.
Então, fazendo um select * from tabela só apresenta os mesmos 65.530
Aparentemente o problema está no retorno do RecordCount, pois a grid está exibindo quase todos registros existentes na tabela no banco access, exceto os dois últimos.
GOSTEI 0
Leonardo Xavier
28/03/2013
Acabei de passar por este mesmo problema. Resolvi assim:
Experimente fazer assim que garanto 100%.
var x:integer; comando:string; begin if JvSpinEdit1.Text='0' then begin ShowMessage('Você Selecionou 0 Registros, esta consulta não pod'+ 'e continuar!'+#13#10+'Selecione um valor >1 para ter uma pesquisa válida!'); end else begin comando:=''; comando:='select TOP '+JvSpinEdit1.Text+' *from sua_tabela where campo_a=:D2'; with DB.malasfechadas do begin Active:=false; sql.Clear; sql.Add(comando+' and enviado is null'); Parameters.ParamByName('D2').Value:=DBLookupComboBox1.Text; prepared:=true; Active:=true; end; Label3.Caption:=inttostr(DB.malasfechadas.RecordCount); end;
Experimente fazer assim que garanto 100%.
GOSTEI 0
Welder.
28/03/2013
Acabei de passar por este mesmo problema. Resolvi assim:
Experimente fazer assim que garanto 100%.
var x:integer; comando:string; begin if JvSpinEdit1.Text='0' then begin ShowMessage('Você Selecionou 0 Registros, esta consulta não pod'+ 'e continuar!'+#13#10+'Selecione um valor >1 para ter uma pesquisa válida!'); end else begin comando:=''; comando:='select TOP '+JvSpinEdit1.Text+' *from sua_tabela where campo_a=:D2'; with DB.malasfechadas do begin Active:=false; sql.Clear; sql.Add(comando+' and enviado is null'); Parameters.ParamByName('D2').Value:=DBLookupComboBox1.Text; prepared:=true; Active:=true; end; Label3.Caption:=inttostr(DB.malasfechadas.RecordCount); end;
Experimente fazer assim que garanto 100%.
Dessa maneira trouxe mais do que 65530 registros?
GOSTEI 0
Leonardo Xavier
28/03/2013
Não apenas o que eu setei no comando SQL, é ai que tá o segredo. Usa paginação como dos Sites. Página 1 com alguns regisrtos pagina 2 com mais registros, e assim por diante.
GOSTEI 0
Welder.
28/03/2013
Não apenas o que eu setei no comando SQL, é ai que tá o segredo. Usa paginação como dos Sites. Página 1 com alguns regisrtos pagina 2 com mais registros, e assim por diante.
bom usei sua a ideia. Um pouco diferente claro. no meu caso tive que colocar opções de colocar o order by em ordem crescente e decrescente. Tipo: Select top StrToInt(edit.text ) campos from tabela where condição order by campo ASC.
Mas se alguém souber porque o AdoQuery.RecordCout só conta os 65530 primeiros registros e se tiver como contornar, deixa ai a dica.
GOSTEI 0
Welder.
28/03/2013
Galera eu acho que descobri.
Com Select TOP campo1, campo2, campo3, etc from tabela where condicao, trouxe todos registros no adoquery.recordcount
Fica ai a dica.
Com Select TOP campo1, campo2, campo3, etc from tabela where condicao, trouxe todos registros no adoquery.recordcount
Fica ai a dica.
GOSTEI 0