Array
(
)

Problema com campo LOCAL utilizando ADO

Techsoft
   - 24 fev 2006

Preciso manipular um banco de dados que está atualmente em Access, porém este banco possui algumas tabelas com um campo chamado LOCAL, se menciono este campo em um SQL

#Código


SELECT LOCAL FROM CDEMPRES


O ADO me retorna um erro ´Erro não especificado´. Já tentei utilizar Zeos mas também esbarrei no mesmo problema. Estou tentando usar o ADO devido ao problema com o ODBC ao manipular uma tabela com um campo memo. Muitas vezes o sistema me apresenta um erro sobre sequencia de caracteres truncada a direita... ou algo assim. Lendo no fórum vi que outros usuários já tiveram este problema e que optaram pelo ADO, porém para mim essa troca não funcionou como deveria por este problema com campos chamados LOCAL em algumas tabelas.

Agradeço a ajuda de todos.


Quadrado
   - 24 fev 2006

Pode ser que esta seja uma palavra reservada do motor de banco de dados. Tente trocar o nome do campo, apenas para teste, se funcionar deve ser este o problema. Eu uso ADO para conexão e acho que é uma ótima alternativa.

Boa sorte

Quadrado


Techsoft
   - 25 fev 2006

obrigado por responder amigo, mas sim, o problema é justamente este, como contornar essa questão do campo chamado LOCAL.... também imagino que deve ser um nome reservado e tal, mas como resolver isso... No momento estamos impossibilitados de trocar nome de campos nas tabelas.

O motivo: migração de sistema, não estamos contentes com o sistema que estamos usando hj e a empresa q desenvolve o sistema já não consegue nos acompanhar, deixaram muito a desejar. Agora estamos partindo para uma aplicação desenvolvida dentro da empresa. As duas aplicações deverão seguir em paralelo até a conclusão e substituição total da aplicação atual... até lá vamos ter q conviver com os defeitos do sistema atual e com a modelagem pífea que foi feita.

Bom, gostaria de deixar registrado que consegui contornar o problema do ODBC, portanto não teria mais a necessidade e urgencia de trocar a conexão, gostaria sim de usar ADO por questões de performance, mas não consegui ainda contornar o problema do campo LOCAL.

O que fiz para resolver o problema do campo MEMO no ODBC foi o seguinte:

No BeforePost da Query gravei os dados do campo MEMO em uma variável do tipo WideString.... após atribui NULL ao campo e gravei... interessante é que ao gravar NULL o erro não aparece... com isso.. fui no evento AfterPost e fiz um SQL que faz um UPDATE no registro e manda para dentro dele o conteúdo da variável que usei para armazenar os dados... assim funcionou e não tive mais problemas com o ODBC.

Se alguém conseguir desvendar algo sobre usar o campo LOCAL no ADO, ficaria muito grato.

Obrigado!


Bon Jovi
   - 25 fev 2006

Tenta entre colchetes:

select [LOCAL]
from CDEMPRES

ou

select [LOCAL] as seila
from CDEMPRES


Quadrado
   - 25 fev 2006

Se não funcionar com o colchete, selecione todos os campos e use somente o Local.

Quadrado