Delphi 7 com Oracle
Trabalho com Oracle 8i há algum tempo, estou migrando para 10g mais está acontecendo o seguinte:
Estava com o Client do 8i instalado em minha máquina e tudo funcionando direitinho, usando DBExpress. Instalei o Client do 10g, e tudo parou de funcionar mais só para o 8i, então como ainda preciso do 8i, removi o 10g da máquina mais agora qunado vou acessar o Oracle 8i pelo Delphi da a seguinte mensagem: ´Unable to Load oci.dll´.
Alguém sabe o que pode ser?
Estava com o Client do 8i instalado em minha máquina e tudo funcionando direitinho, usando DBExpress. Instalei o Client do 10g, e tudo parou de funcionar mais só para o 8i, então como ainda preciso do 8i, removi o 10g da máquina mais agora qunado vou acessar o Oracle 8i pelo Delphi da a seguinte mensagem: ´Unable to Load oci.dll´.
Alguém sabe o que pode ser?
Manjuneiro
Curtidas 0
Respostas
Marcio.theis
11/10/2005
Vc já reinstalou o Client do 8i ???
GOSTEI 0
Manjuneiro
11/10/2005
Já reinstalei o Oracle 8i sim.
GOSTEI 0
Marcio.theis
11/10/2005
E a DLL esta dentro da pasta BIN do Oracle ?
GOSTEI 0
Manjuneiro
11/10/2005
Tá sim.
GOSTEI 0
Manjuneiro
11/10/2005
Cara valeu pelo empenho em resolver, mais já deu certo, apenas alterei o caminho da dll no Delphi, não entendi porque aconteceu esto, mais tá valendo, funcionou.
Muito Obrigado
Muito Obrigado
GOSTEI 0
Jcalmeij
11/10/2005
Cara...na verdade não era uma solução...
mas um pedido de auxílio...
utilizo o 10g...e estou migrando as aplicações
para dbExpress...
meu único problema...
é que as atualizações ( applyupdates(-1)..
executado no ClientDataSet...
não surte efeito algum.
uso SQLQuery + Provider + ClientDataSet...
tens alguma sugestão???
mas um pedido de auxílio...
utilizo o 10g...e estou migrando as aplicações
para dbExpress...
meu único problema...
é que as atualizações ( applyupdates(-1)..
executado no ClientDataSet...
não surte efeito algum.
uso SQLQuery + Provider + ClientDataSet...
tens alguma sugestão???
GOSTEI 0
Rômulo Barros
11/10/2005
Amigo [b:1cc99d78ec]jcalmeij[/b:1cc99d78ec], isso geralmente ocorre no [b:1cc99d78ec]windows XP[/b:1cc99d78ec]. Para resolver este problema no [b:1cc99d78ec]XP[/b:1cc99d78ec], siga os passos:
[b:1cc99d78ec]1-[/b:1cc99d78ec] Ir no registro do windows em :
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
[b:1cc99d78ec]2- [/b:1cc99d78ec]Substituir o valor da chave NLS_LANG:
[b:1cc99d78ec]Valor atual:[/b:1cc99d78ec] [color=blue:1cc99d78ec]BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1[/color:1cc99d78ec]
[b:1cc99d78ec]Subsituir por:[/b:1cc99d78ec] [color=blue:1cc99d78ec]AMERICAN_AMERICA.WE8ISO8859P1[/color:1cc99d78ec]
[u:1cc99d78ec][i:1cc99d78ec]Qualquer coisa dá um alôzinho aqui !!![/i:1cc99d78ec][/u:1cc99d78ec]
[b:1cc99d78ec]1-[/b:1cc99d78ec] Ir no registro do windows em :
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
[b:1cc99d78ec]2- [/b:1cc99d78ec]Substituir o valor da chave NLS_LANG:
[b:1cc99d78ec]Valor atual:[/b:1cc99d78ec] [color=blue:1cc99d78ec]BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1[/color:1cc99d78ec]
[b:1cc99d78ec]Subsituir por:[/b:1cc99d78ec] [color=blue:1cc99d78ec]AMERICAN_AMERICA.WE8ISO8859P1[/color:1cc99d78ec]
[u:1cc99d78ec][i:1cc99d78ec]Qualquer coisa dá um alôzinho aqui !!![/i:1cc99d78ec][/u:1cc99d78ec]
GOSTEI 0
Jcalmeij
11/10/2005
cara...
eu não estava mostrando o erro...
no ReconcileError...
daih vi onde estava meu problema...
mas...ainda nao sei como resolver...
acredito que tenha a ver com as providerflags...
pq ele dah um erro que nao tem um valor...
pra um campo obrigatório, a chave...
mas existe o valor...
e o campo tah setado somente como...
pfinkey=true...
gravo da seguinte forma
cds.Post;
cds.ApplyUpdates(-1);
cds.Close;
cds.Open;
algo mais que deva saber...
abraço...
Julio Jr.
eu não estava mostrando o erro...
no ReconcileError...
daih vi onde estava meu problema...
mas...ainda nao sei como resolver...
acredito que tenha a ver com as providerflags...
pq ele dah um erro que nao tem um valor...
pra um campo obrigatório, a chave...
mas existe o valor...
e o campo tah setado somente como...
pfinkey=true...
gravo da seguinte forma
cds.Post;
cds.ApplyUpdates(-1);
cds.Close;
cds.Open;
algo mais que deva saber...
abraço...
Julio Jr.
GOSTEI 0
Rômulo Barros
11/10/2005
Para configurar os ProviderFlags, precisamos saber qual o SQL definido na query.
Qual o SQL da sua Query ?
Qual o SQL da sua Query ?
GOSTEI 0
Jcalmeij
11/10/2005
Na verdade na query...só tenho um select * from tabela...
:?
:?
GOSTEI 0
Rômulo Barros
11/10/2005
E como é q vc está gerando o valor para o campo chave?
GOSTEI 0
Jcalmeij
11/10/2005
O código eh gerado via código fonte...
e inserido no Client... :o
e inserido no Client... :o
GOSTEI 0
Rômulo Barros
11/10/2005
Dê um olhadinha [url=http://translate.google.com/translate?u=http¬3A¬2F¬2Fdelphi.about.com¬2Fgi¬2Fdynamic¬2Foffsite.htm¬3Fzi¬3D1¬2FXJ¬26sdn¬3Ddelphi¬26zu¬3Dhttp¬253A¬252F¬252Fbdn.borland.com¬252Fborcon2004¬252Farticle¬252Fpaper¬252F0¬252C1963¬252C32229¬252C00.html&langpair=en¬7Cpt&hl=pt-BR&ie=UTF-8&oe=UTF-8&prev=¬2Flanguage_tools]NESTE LINK[/url] e veja como configurar os [b:7c8cd63299]ProviderFlags[/b:7c8cd63299]. Se não conseguir, poste aqui novamente, neste mesmo tópico. :wink:
GOSTEI 0
Jcalmeij
11/10/2005
Pior que nada ainda...
os campos do client e da query estão marcados como inupdate
com exceção do codigo que eh inkey....
o provider tah setado como onkeyonly...
e qdo altero dah o erro... ´invalid number´...
e se tento inserir
´cannot insert null into (´FB_FAB´.´CODIGO´)´;
o estranho é que to setando o valor do codigo....
ou seja o client tem valor mas parece que qdo o provider vai atualizar
o valor nao eh reconhecido...
os campos do client e da query estão marcados como inupdate
com exceção do codigo que eh inkey....
o provider tah setado como onkeyonly...
e qdo altero dah o erro... ´invalid number´...
e se tento inserir
´cannot insert null into (´FB_FAB´.´CODIGO´)´;
o estranho é que to setando o valor do codigo....
ou seja o client tem valor mas parece que qdo o provider vai atualizar
o valor nao eh reconhecido...
GOSTEI 0
Msmci
11/10/2005
[quote:6bcc2cc2f1=´Rômulo Barros´]Amigo [b:6bcc2cc2f1]jcalmeij[/b:6bcc2cc2f1], isso geralmente ocorre no [b:6bcc2cc2f1]windows XP[/b:6bcc2cc2f1]. Para resolver este problema no [b:6bcc2cc2f1]XP[/b:6bcc2cc2f1], siga os passos:
[b:6bcc2cc2f1]1-[/b:6bcc2cc2f1] Ir no registro do windows em :
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
[b:6bcc2cc2f1]2- [/b:6bcc2cc2f1]Substituir o valor da chave NLS_LANG:
[b:6bcc2cc2f1]Valor atual:[/b:6bcc2cc2f1] [color=blue:6bcc2cc2f1]BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1[/color:6bcc2cc2f1]
[b:6bcc2cc2f1]Subsituir por:[/b:6bcc2cc2f1] [color=blue:6bcc2cc2f1]AMERICAN_AMERICA.WE8ISO8859P1[/color:6bcc2cc2f1]
[/quote:6bcc2cc2f1]
Rômulo, no meu micro posso alterar o registro mas nas máquinas dos usuários não posso. Teria como acertar esta falha nos componentes de conexão?
Grato,
Masuda
[b:6bcc2cc2f1]1-[/b:6bcc2cc2f1] Ir no registro do windows em :
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
[b:6bcc2cc2f1]2- [/b:6bcc2cc2f1]Substituir o valor da chave NLS_LANG:
[b:6bcc2cc2f1]Valor atual:[/b:6bcc2cc2f1] [color=blue:6bcc2cc2f1]BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1[/color:6bcc2cc2f1]
[b:6bcc2cc2f1]Subsituir por:[/b:6bcc2cc2f1] [color=blue:6bcc2cc2f1]AMERICAN_AMERICA.WE8ISO8859P1[/color:6bcc2cc2f1]
[/quote:6bcc2cc2f1]
Rômulo, no meu micro posso alterar o registro mas nas máquinas dos usuários não posso. Teria como acertar esta falha nos componentes de conexão?
Grato,
Masuda
GOSTEI 0
Brunolspp
11/10/2005
sobre delphi 7 e ORacle 10g.
Quando o Dlephi 7 saiu a 5 anos atras não existia o 10g, ou seja o dbx do delphi 7 nao foi criado para suportar o 10g.
Sobre o problema com Applypdates, é necessário identificar o erro antes.
Ao inves de colocar ApplyUpdates(-1), coloque o parametro ´0´ no lugar do ´-1´ para não admitir erros, e depois coloque no evento onreconcilieerror do clientdhataset o seguinte código:
raise edatabaseerror.create(e.message);
enos informa o erro que gerou e a forma de reproduzilo para podermos ajudar melhor.
Para resover oproblema de characterset do oracle coloque a seguinte linha no after connecto do SQLConnection
SQLConnection.ExecuteDirect(´alter session set NLS_NUMERIC_CHARACTERS=´.,´´);
e para resolver problema de separador decimal é só colocar
DecimalSeparator := ´.´;
Acho que com isso conseguimos começar a ajudar melhor.
Para quem estiver interessado em atualizar o Delphi, ele está com 60¬ de desconto, e ainda por cima voce tera o mais novo suporte a bancos de dados, melhor performance, em alguns casos mais de 100¬ de performance a mais, melhor gerencia de memoria, alias muito melhor entre outras coisas descritas e demonstradas nos videos em portugues gratuitamente disponibilizados no Developer Network Brasil (http://dn.codegear.com/br) no link do Delphi Day On-Line.
E no mais, estamos as ordens.
Quando o Dlephi 7 saiu a 5 anos atras não existia o 10g, ou seja o dbx do delphi 7 nao foi criado para suportar o 10g.
Sobre o problema com Applypdates, é necessário identificar o erro antes.
Ao inves de colocar ApplyUpdates(-1), coloque o parametro ´0´ no lugar do ´-1´ para não admitir erros, e depois coloque no evento onreconcilieerror do clientdhataset o seguinte código:
raise edatabaseerror.create(e.message);
enos informa o erro que gerou e a forma de reproduzilo para podermos ajudar melhor.
Para resover oproblema de characterset do oracle coloque a seguinte linha no after connecto do SQLConnection
SQLConnection.ExecuteDirect(´alter session set NLS_NUMERIC_CHARACTERS=´.,´´);
e para resolver problema de separador decimal é só colocar
DecimalSeparator := ´.´;
Acho que com isso conseguimos começar a ajudar melhor.
Para quem estiver interessado em atualizar o Delphi, ele está com 60¬ de desconto, e ainda por cima voce tera o mais novo suporte a bancos de dados, melhor performance, em alguns casos mais de 100¬ de performance a mais, melhor gerencia de memoria, alias muito melhor entre outras coisas descritas e demonstradas nos videos em portugues gratuitamente disponibilizados no Developer Network Brasil (http://dn.codegear.com/br) no link do Delphi Day On-Line.
E no mais, estamos as ordens.
GOSTEI 0
Msmci
11/10/2005
Se instalar as duas versões no mesmo Windows terei problemas devido a sobrepósição de DLL ou coisas do genero?
Grato,
Masuda
Grato,
Masuda
GOSTEI 0
Brunolspp
11/10/2005
Não, as versões do Delphi conviem sem problemas.
Tenho em meu PC Delphi 1, Delphi 7 e Delphi 2007. Os dois primeiro uso muito para fazer migrações e demonstrações, e produzo tudo que é novo e todas as manutenções no Delphi 2007 e nunca houve problema.
Tenho em meu PC Delphi 1, Delphi 7 e Delphi 2007. Os dois primeiro uso muito para fazer migrações e demonstrações, e produzo tudo que é novo e todas as manutenções no Delphi 2007 e nunca houve problema.
GOSTEI 0
Psyjacko
11/10/2005
amigo não sei se oq eu vo falar possa ajudar , mas talvez sim , pq vc dá o
eu utilizo o
grava os registros.
ApplyUpdates(-1)
?eu utilizo o
ApplyUpdates (0)
dessa ultima maneira e sempre grava os registros.
GOSTEI 0