Array
(
)

adoquery - não funciona em alguns micros com win98

N1
   - 18 ago 2004

Pessoal,

O código abaixo funciona corretamente em micros com xp, 2000, mas
com Win98 em algumas máquinas não.

DM.q1.Close;
DM.q1.SQL.Clear;
DM.q1.SQL.Add(´select p.codigo,p.nome,p.datanasc,´);
DM.q1.SQL.Add(´p.sexo,e.codp,e.registro,´);
DM.q1.SQL.Add(´e.dataexame´);
DM.q1.SQL.Add(´ from P,E´);
DM.q1.SQL.Add(´where p.codigo=e.codpaciente´);
DM.q1.SQL.Add(´and p.nome like ´´ + edtLocalizaNome.text + ´¬´ ´);

Descobri que a última linha do código é a fonte de erro. Já atualizei o MDAC,JET da microsoft nesta máquina mas não consigo fazer funcionar.
O que precisa ser corrigido?

Obrigado


Bon Jovi
   - 19 ago 2004

Mas qual problema ocorre exatamente? Aparece alguma mensagem de erro? Qual banco, JetDb/´Access´ mesmo?


N1
   - 19 ago 2004

Sendo mais especifico, tinha um try/except, retirando percebi que a linha
DM.q1.SQL.Add(´and p.nome like ´´ + edtLocalizaNome.text + ´¬´ ´);
é o problema, o usuário, ao colocar um dado para ser pesquisado e clicando no botão para acionar a adoquery retorna um grid vazio.
Aparece uma msg de erro E_FAIL.

Executando sem esta linha funciona normalmente em qualquer win98 que instalei,ie, o dbgrid é carregado normalmente, mas sem a filtragem.
Estou com adoconnection, ACCESS, Jet4.


Bon Jovi
   - 20 ago 2004

Tente mudar para:

DM.q1.SQL.Add(´AND P.NOME LIKE ´ + QuotedStr(edtLocalizaNome.text + ´¬´));

Deu um branco agora, nao sei se é * ou ¬ no Access...

DM.q1.SQL.Add(´AND P.NOME LIKE ´ + QuotedStr(edtLocalizaNome.text + ´*´));


N1
   - 23 ago 2004

Bon Jovi

Testei sua dica mas não funcionou. Aparentemente é algo com o
Win98 daquela máquina. Alguma outra sugestão?


Bon Jovi
   - 23 ago 2004

Nao sei mais o q pode ser, é um problema muito particular. Só vou te dar umas recomendações:

- Usar CursorLocation = clUseClient (que já é default)
- Preferir usar TADODataSet e TADOCommand ao invés de TADOQuery


N1
   - 24 ago 2004

Obrigado