DbExpress no Oracle
Turma,
Tô com um problema que tá duro de se resolver.
Uso o trio da esperança: SQLQuery/DataProvider/ClientDataSet com DbConcection.
Na minha máquina uso o Oracle Personal 8i e funciona normalmente.
No Cliente existe o Oracle 8 e quando vou ativar o ClientDataSet, após activar a SQLQuery, dá o seguinte erro:
INVALID VARIANT TYPE CONVERSION.
Coloquei, na pasta do aplicativo, as dlls DBEXPORA e MIDAS.
Também coloquei lá, ~´ para teste, os arquivos DbxConections.INI e DbxDrivers.INI.
Se alguém puder me tirar deste sufoco, agradeço muito.
Obs: Interessante é que uso o Delphi 7 e o problema persiste.
Também no Interbase algo semelhante ocorre com erro de conversão.
Pavão.
Tô com um problema que tá duro de se resolver.
Uso o trio da esperança: SQLQuery/DataProvider/ClientDataSet com DbConcection.
Na minha máquina uso o Oracle Personal 8i e funciona normalmente.
No Cliente existe o Oracle 8 e quando vou ativar o ClientDataSet, após activar a SQLQuery, dá o seguinte erro:
INVALID VARIANT TYPE CONVERSION.
Coloquei, na pasta do aplicativo, as dlls DBEXPORA e MIDAS.
Também coloquei lá, ~´ para teste, os arquivos DbxConections.INI e DbxDrivers.INI.
Se alguém puder me tirar deste sufoco, agradeço muito.
Obs: Interessante é que uso o Delphi 7 e o problema persiste.
Também no Interbase algo semelhante ocorre com erro de conversão.
Pavão.
Crpavao
Curtidas 0
Respostas
Fábio Bentes
12/08/2003
A DBExpress tem um sério problema em campos do tipo numérico no driver do Oracle. Quando vc retorna os campos de uma tabela que tenha um campo do tipo Number, ele é adicionado no SQLQuery como TBCDField. A DBExpress faz isso automaticamente. Se vc mudar manualmente, ele dá problema. Os parâmetros de stored procedures do tipo numérica no Oracle são vindos para o TSQLStoredProc como TFMTBCDField. Para resolver este problema, é só converter o campo para string e depois convertê-lo para bcd, para passar para a procedure. Ex.:
StrToBcd(string(campo_numerico)).
A DBExpress também tem problema em trabalhar com Package do Oracle e muitos dos comandos de PL/SQL. Em suma, a DBExpress é rápida, mas trabalha de forma limitada com o Oracle. O Delphi 7 já está com a DBExpress mais amadurecida. Não deixe de testá-lo.
Aguardo retorno.
StrToBcd(string(campo_numerico)).
A DBExpress também tem problema em trabalhar com Package do Oracle e muitos dos comandos de PL/SQL. Em suma, a DBExpress é rápida, mas trabalha de forma limitada com o Oracle. O Delphi 7 já está com a DBExpress mais amadurecida. Não deixe de testá-lo.
Aguardo retorno.
GOSTEI 0
Crpavao
12/08/2003
Fábio,
Já tinha lido uma resposta sua sobre esta mesma dúvida. Fico bastante agradecido pela sua ajuda.
Vou testar no Delphi 7 o DbExpress. Estranho que também uso Interbase e na minha máquina, com Delphi 6, funciona bem mas na máquina do Cliente dá uns paus estranhos. Sei lá.
Amanhã deve testar do 7 e vamos ver.
Grato, amigo, pela ajuda.
Qq coisa estamos aqui em Minas, cidade de Mariana. Trabalho com Delphi desde 99 e uso Interbase, Oracle e SQL Server 7.
Grande abraço.
Já tinha lido uma resposta sua sobre esta mesma dúvida. Fico bastante agradecido pela sua ajuda.
Vou testar no Delphi 7 o DbExpress. Estranho que também uso Interbase e na minha máquina, com Delphi 6, funciona bem mas na máquina do Cliente dá uns paus estranhos. Sei lá.
Amanhã deve testar do 7 e vamos ver.
Grato, amigo, pela ajuda.
Qq coisa estamos aqui em Minas, cidade de Mariana. Trabalho com Delphi desde 99 e uso Interbase, Oracle e SQL Server 7.
Grande abraço.
GOSTEI 0