SetRange funciana com ADO?
Estou criando uma versão de um sistema feito em Paradox para Access, quando mudei BDE para ADO deu erro numa rotina que utiliza SetRange, CancelRange e ApplyRange(dá mensagem de que estes identificadores não estão declarados).
Alguém sabe se isto não funciona para ADO e o que devo fazer?
Grata.
Alguém sabe se isto não funciona para ADO e o que devo fazer?
Grata.
Sarnhold
Curtidas 0
Respostas
Adriano Santos
30/11/2005
Bom, até onde sei o SetRange só funciona com paradox, me corrijam se eu estiver errado.
GOSTEI 0
Sarnhold
30/11/2005
Realmente vi que não funciona com ADO.
Alguém sabe como posso solucionar o problema, estou precisando, urgente!!!
Obrigadão!!!
Alguém sabe como posso solucionar o problema, estou precisando, urgente!!!
Obrigadão!!!
GOSTEI 0
Ildefonso
30/11/2005
Olá...
O pensamento do programa terá que mudar.
O SetRange trabalha sobre o índice ativo. O ADO não trabalha com índices de forma a restringir dados, mas para acesso rápido e ordenação.
Você terá que experimentar uma destas duas opções, para obter o mesmo resultado do SetRange:
1. Usar uma expressão filtro, na propriedade Filter e atribuir True a propriedade Filtered;
2. Usar uma SQL que retorne apenas os dados que você quer dentro do range.
O pensamento do programa terá que mudar.
O SetRange trabalha sobre o índice ativo. O ADO não trabalha com índices de forma a restringir dados, mas para acesso rápido e ordenação.
Você terá que experimentar uma destas duas opções, para obter o mesmo resultado do SetRange:
1. Usar uma expressão filtro, na propriedade Filter e atribuir True a propriedade Filtered;
2. Usar uma SQL que retorne apenas os dados que você quer dentro do range.
GOSTEI 0
Sarnhold
30/11/2005
Valeu obrigada!
Já havia feito isto antes de ler a mensagem, mas mesmo assim as dicas foram importantes.
Agora estou tendo problemas com findnearest.
Tentei mudar para locate, mas está dando erro:
Preciso localizar em tbCategorias parte do valor do Campo DESCRICAO, ou seja se quiser buscar ´Blue´, por exemplo, se digitar B em Edit1, deve retornar a palavra ´Blue´ em DBEDIT1.
Tentei de duas maneiras, mas nenhuma deu certo:
dm.tbCategoria.Locate(dm.tbCategoriaDESCRICAO.Value,Edit1.Text,[loPartialKey]);
e
dm.tbCategoria.Locate(Edit1.Text,DBEdit1.Text,[loPartialKey]);
Dá a seguinte mensagem de erro:
´indice da lista fora dos limites´
Não sei se deu p/ entender!
Se alguém souber, por favor me ajude, pois preciso disto urgente.
Abraços.
Já havia feito isto antes de ler a mensagem, mas mesmo assim as dicas foram importantes.
Agora estou tendo problemas com findnearest.
Tentei mudar para locate, mas está dando erro:
Preciso localizar em tbCategorias parte do valor do Campo DESCRICAO, ou seja se quiser buscar ´Blue´, por exemplo, se digitar B em Edit1, deve retornar a palavra ´Blue´ em DBEDIT1.
Tentei de duas maneiras, mas nenhuma deu certo:
dm.tbCategoria.Locate(dm.tbCategoriaDESCRICAO.Value,Edit1.Text,[loPartialKey]);
e
dm.tbCategoria.Locate(Edit1.Text,DBEdit1.Text,[loPartialKey]);
Dá a seguinte mensagem de erro:
´indice da lista fora dos limites´
Não sei se deu p/ entender!
Se alguém souber, por favor me ajude, pois preciso disto urgente.
Abraços.
GOSTEI 0
Sarnhold
30/11/2005
Deu certo agora:
dm.tbCategoria.Locate(´DESCRICAO´,Edit1.Text,[loPartialKey, locaseinsensitive] );
Obrigada.
dm.tbCategoria.Locate(´DESCRICAO´,Edit1.Text,[loPartialKey, locaseinsensitive] );
Obrigada.
GOSTEI 0
Sarnhold
30/11/2005
findkey também não funciona.
Ex.:
If (Dm.tbUsuarios.FindKey([EdUsuario.Text])) then
Alguém sabe como posso fazer?
Abraço.
Ex.:
If (Dm.tbUsuarios.FindKey([EdUsuario.Text])) then
Alguém sabe como posso fazer?
Abraço.
GOSTEI 0