Delphi 7 com Oracle

Delphi

11/10/2005

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?


Manjuneiro

Manjuneiro

Curtidas 0

Respostas

Marcio.theis

Marcio.theis

11/10/2005

Vc já reinstalou o Client do 8i ???


GOSTEI 0
Manjuneiro

Manjuneiro

11/10/2005

Já reinstalei o Oracle 8i sim.


GOSTEI 0
Marcio.theis

Marcio.theis

11/10/2005

E a DLL esta dentro da pasta BIN do Oracle ?


GOSTEI 0
Manjuneiro

Manjuneiro

11/10/2005

Tá sim.


GOSTEI 0
Manjuneiro

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


GOSTEI 0
Jcalmeij

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???


GOSTEI 0
Rômulo Barros

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]


GOSTEI 0
Jcalmeij

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.


GOSTEI 0
Rômulo Barros

Rômulo Barros

11/10/2005

Para configurar os ProviderFlags, precisamos saber qual o SQL definido na query.
Qual o SQL da sua Query ?


GOSTEI 0
Jcalmeij

Jcalmeij

11/10/2005

Na verdade na query...só tenho um select * from tabela...
:?


GOSTEI 0
Rômulo Barros

Rômulo Barros

11/10/2005

E como é q vc está gerando o valor para o campo chave?


GOSTEI 0
Jcalmeij

Jcalmeij

11/10/2005

O código eh gerado via código fonte...
e inserido no Client... :o


GOSTEI 0
Rômulo Barros

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

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...


GOSTEI 0
Msmci

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


GOSTEI 0
Brunolspp

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.


GOSTEI 0
Msmci

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


GOSTEI 0
Brunolspp

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.


GOSTEI 0
Psyjacko

Psyjacko

11/10/2005

amigo não sei se oq eu vo falar possa ajudar , mas talvez sim , pq vc dá o
ApplyUpdates(-1)
?

eu utilizo o
ApplyUpdates (0)
dessa ultima maneira e sempre
grava os registros.


GOSTEI 0
POSTAR