Páginas

terça-feira, 8 de setembro de 2009

Delphi 2010+MSSQL - "Unable to find procedure DBXRow_GetUint8"

Aconteceu comigo.



Ao tentar fazer um conexão em um banco de dados SQL Server, como o Delphi 2010, fui premiado com a mensagem "Unable to find procedure DBXRow_GetUint8". Então parti para alguns testes:

1o) Criei um novo projeto e testar a conexão, para minha surpresa o exemplo conectou 100% ao banco.
2o) Executei um projeto meu menor, e também conectou 100%
3o) Olhei no meu projeto que dava o erro, se tinha alguma Unit ocasionando o erro, pois já aconteceu comigo "A biblioteca RX, não deixava abrir o editor do TImageList"
4o) Passei um email para o Andreano e ele me respondeu para que eu criasse um exemplo, mas como se já tinha feito e estava com quase 100% de certeza que no monte de units do meu projeto uma delas estava ocasionando o erro. Pior e como descobrir qual ?
5o) Último teste criei um projeto teste e fui puxando para ele unit a unit, para saber qual era.

Resultado final foi que não descobri pois com pouquíssimas units o erro estava ocorrendo e olhei todas e vi que não era uma unit que estava ocasionando o erro. Então ao dar uma olhada no diretório do projeto teste, diretório este que era o mesmo do meu projeto, vi que eu tinha colocado no mesmo diretório dos EXEs as dlls de conexão. Como tinha duas dlls uma para firebird e outra para MSSQL, resolvi apagar a do MSSQL, pois a do firebird estava funcionando normal. Para minha alegria ao executar a aplicação o erro não ocorreu.

Resumo:
Delphi 2010 com conexão MSSQL, não coloque a dll "dbxmss.dll", no mesmo diretório de sua aplicação, deixe-a no "System32".

O erro foi reportado ao QC

Para deixar os leitores a par do acontecido:
Depois de vários comentários no QC, referente este erro, foi descoberto que o problema estava vindo da versão antiga da dll (dbxmss.dll), a qual eu por acidente peguei do diretório do D2009 ao invés de pegar-la do diretório do D2010. Atualizei a dll e funcionou 100%.

0 comentários:

Postar um comentário