Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bbrasil

Aplicativo com problemas no windows 98

Recommended Posts

Meus amigos,Estou com um sério problema...Fiz minha aplicação no windows xp onde foi gerado o pacote de instalação..Ao executar o pacote numa máquina com windows 98 o sistema instala perfeitamente, porém ao acessar o executável, o sistema emite a seguinte mensagem...-----------------------------------------------------------MAISIMOBILIARIO orsakade ett ogiltigt sidfel imodul KERNEL32.DLL på adress 0167:bff7b9a6.Registrerar:EAX=00000000 CS=0167 EIP=bff7b9a6 EFLGS=00000246EBX=0139e3c0 SS=016f ESP=0074f714 EBP=0074f728ECX=0139e3c0 DS=016f ESI=0139e428 FS=2b87EDX=014a017c ES=016f EDI=0139e428 GS=0000Byte på CS:EIP:ff 76 04 e8 13 89 ff ff 5e c2 04 00 56 8b 74 24 Stackdump:0139e3c0 70e6eb88 0139e428 00000000 014a0180 0074f768 70e6e28e 014a0180 0000000d 0074f750 00000001 0139e3c0 00000012 00000000 81638df8 00000000 ------------------------------------------------------------Continuei refinando o problema para tentar identificar a causa do mesmo..e constatei o seguinte..Ao se utilizar um formulário com um objeto (por exemplo image) que contenha um arquivo .jpg ou .gif (detalhe .bmp ou .ico não tem problema) o sistema emite o erro acima especificado...continuei...Instalei o VB 6 nesta máquina (windows 98) que está dando este problema..e para minha surpresa ao tentar inserir uma imagem .jpg ou .gif no objeto image, o sistema emite a mesma mensagem...Fiz mais..Desistalei o aplicativo e o visual basic e instalei novamente o vb6 e ocorreu o mesmo problema..Não sei o que fazer mais....Agradeço a ajuda..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente o problema esta no Sistema Operacional desta máquina, antes de ir ao extremo que é a instação do Windows, verifique quais são os programas instalados nesta máquina. Tente Atualizar o Windows.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Humberto,Após desinstalar a aplicação, reinstalei o windows e o sistema abriu sem problemas, dando erro ao acessar algumas telas que contém alguns componentes que precisam ser adcionados durante a instalação do xp. até aí tudo bem...Bom..então parti para a instalação do sistema, e para minha surpresa acontece o mesmo problema .....Creio que o problema seja alguma dll ou outro arquivo que é sustituído durante a instalação da aplicação, no windows 98 ocasionando este problema..A questão é:Como saber qual o arquivo??? Claro, se for isso que estou achando..Acho que estamos quase nos finalmentes......espero............

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha..eu estava com o mesmo problema. No site da microsoft existem algumas atualizações do VB6. Eu as baixei, instalei tudo ficou maravilhoso. Faça isso..tente atualizar seu VB...é bem provável q sane seu problema Boa sorte!! Sinkertec

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luiz,

 

Uso esta abaixo para referenciar na leitura de um arquivo INI..

 

Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

 

 

Você usa alguma API do kernel32.dll ?

Invasor,

 

Mas o que tem a ver estas atualizações.... Seria que, uma vez atualizado o vb6 o pacote de instalação que seria gerado posteriormente estaria corrigido sem, provavelmente substituir ou alterar algum arquivo da máquina que estou instalando, ou seja no windows 98 ???

 

e quais seriam estas atualizações...???

 

Obrigado..

 

 

Olha..eu estava com o mesmo problema.

 

No site da microsoft existem algumas atualizações do VB6. Eu as baixei, instalei tudo ficou maravilhoso.

 

Faça isso..tente atualizar seu VB...é bem provável q sane seu problema

 

Boa sorte!!

 

Sinkertec

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom..pelo que percebi , nessas atualizações, algumas dlls, são melhoradas ou trocadas para que não tenhamos incopatibilidade de versões de windows na geração de Setups pelo vb.. Como eu disse...foi isso que aconteceu comigo...eu atualizei meu vb, gerei novo pacote e tudo funcionou legal! Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara,Você tem estas atualizações?Sabe quais são?abraços..

Bom..pelo que percebi , nessas atualizações, algumas dlls, são melhoradas ou trocadas para que não tenhamos incopatibilidade de versões de windows na geração de Setups pelo vb.. Como eu disse...foi isso que aconteceu comigo...eu atualizei meu vb, gerei novo pacote e tudo funcionou legal! Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui em casa eu baixei o Service Pack 5 (que contém todos os anteriores) e o Service Pack 6. E nunca tive problemas do tipo, apesar de não lembrar ter usado APIs do Kernel.O erro ocorre quando você tenta usar esse função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não...O erro ocorre quando tento acessar qualquer form que contenha um componente com uma imagem do tipo gif ou jpg... mas como falei, este erro ocorre após rodar o pacote de instalação no qindows 98 proveniente do xp... por exemplo, se eu rodar o pacote de instalação e depois reinstalar o windows o problema é resolvido... por isso deduzir a causa do problema....

Aqui em casa eu baixei o Service Pack 5 (que contém todos os anteriores) e o Service Pack 6. E nunca tive problemas do tipo, apesar de não lembrar ter usado APIs do Kernel.O erro ocorre quando você tenta usar esse função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom agradeço a todos, com a instalação do SP6, o pacote de instalação está ok...porém ainda estou com problema...(fazer o q né?)Não imagino o que seja....Fiz alguns pontos de paradas com mensagens de alerta e descobri que não posso ordenar um expressão sql que o sistema emite o erro...RunTime error '3704'Operação não permitida quando o objeto está fechadoSql = "select * from Imbcliente order by codigo"Ele executa o sql "sem erros", porém quando eu faço referência para ver se a tabela possui registro ele me dá o erro.. caso eu não ordene ele não me dá erro....A linha do código com o problema é a seguinte.. If RsCliente.RecordCount <> 0 Then-> O recordset não está fechadoNas máquinas com windows XP não ocorre este problema..Inacreditável...Mas uma vez necessito da ajuda dos senhores...Obrigado..

Não...O erro ocorre quando tento acessar qualquer form que contenha um componente com uma imagem do tipo gif ou jpg... mas como falei, este erro ocorre após rodar o pacote de instalação no qindows 98 proveniente do xp... por exemplo, se eu rodar o pacote de instalação e depois reinstalar o windows o problema é resolvido... por isso deduzir a causa do problema....

Aqui em casa eu baixei o Service Pack 5 (que contém todos os anteriores) e o Service Pack 6. E nunca tive problemas do tipo, apesar de não lembrar ter usado APIs do Kernel.O erro ocorre quando você tenta usar esse função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema deve estar na hora que você executa a SQL.

Nessa parte:

Sql = "select * from Imbcliente order by codigo"
Você só joga a instrução SQL para uma variavel, e não executa ela.

 

Esse erro ocorre quando você não abriu a conexão (objecto_connection.open).

 

Mostra a parte aí do seu código onde você conecta ao BD e executa a sql.

 

Algo como objecto_connection.execute ou recordset.open ou algo do tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Luiz,

 

Só postei mesmo a linha que está dando o problema, que no xp não ocorre...mas segue abaixo o processo de conexão e execução do recordset..

 

Sql = "select * from Imbcliente order by codigo"

Set RsCliente = Executa(Sql)

 

'Conexão - Módulo

 

Db.ConnectionString = "Provider=IbOleDb;Data Source= " & caminho & "siag.gdb"

 

Password = ReadINI("Geral", "Password", App.Path & "\Info.ini")

Usuario = ReadINI("Geral", "User", App.Path & "\Info.ini")

 

Db.Open , Usuario, Password

 

'Sql - Módulo

Public Function Executa(Sql As String) As ADODB.Recordset

 

Set Rs = CreateObject("ADODB.Recordset")

Set Rs.ActiveConnection = Db

 

Rs.CursorLocation = adUseClient

Rs.CursorType = adOpenStatic

Rs.LockType = adLockBatchOptimistic

 

On Error Resume Next

Rs.Open Sql

If Err.Number <> 0 Then

m_bFlagErro = True

m_sMensagem = Err.Description

On Error GoTo 0

Set Executa = Nothing

Else

On Error GoTo 0

m_bFlagErro = False

If Rs.EOF <> True Then

Rs.MoveFirst

End If

Set Executa = Rs

End If

End Function

 

 

Mais uma vez lembrando no xp não tenho este problema e no windows 98 só tenho problemas quando dou um order by no select, caso seja select puro ele não retorna erros e executa normalmente..

 

Obrigado..

 

 

 

O problema deve estar na hora que você executa a SQL.

Nessa parte:

Sql = "select * from Imbcliente order by codigo"
Você só joga a instrução SQL para uma variavel, e não executa ela.

 

Esse erro ocorre quando você não abriu a conexão (objecto_connection.open).

 

Mostra a parte aí do seu código onde você conecta ao BD e executa a sql.

 

Algo como objecto_connection.execute ou recordset.open ou algo do tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Luiz,

 

Fazendo alguns testes notei o seguinte..

 

Quando uso um cursor ao lado do servidor, não tenho problemas, (porém terei de mudar a manipulação dos registros já que neste modo o retorno de qtde do recordset traz sempre " -1 ", e dará certo trabalho pois terei de mudar todo o código, além de poder ter alguma outra implicação né..), utilizando o cursor client que é o convencional, (já que a aplicação é client x server..) ocorre problemas do tipo... Se tentar abrir e fechar de forma consecutiva alguns recordsets... problemas com order by..enfim...acho que o problema talvez seja a interpretação do windows 98 com cursores (já que no xp não tenho nenhum problema)... segue o código abaixo...

 

Só postei mesmo a linha que está dando o problema, que no xp não ocorre...mas segue abaixo o processo de conexão e execução do recordset..

 

Sql = "select * from Imbcliente order by codigo"

Set RsCliente = Executa(Sql)

 

'Conexão - Módulo

Db.ConnectionString = "Provider=IbOleDb;Data Source= " & caminho & "siag.gdb"

Password = ReadINI("Geral", "Password", App.Path & "\Info.ini")

Usuario = ReadINI("Geral", "User", App.Path & "\Info.ini")

Db.Open , Usuario, Password

 

'Sql - Módulo

Public Function Executa(Sql As String) As ADODB.Recordset

Set Rs = CreateObject("ADODB.Recordset")

Set Rs.ActiveConnection = Db

Rs.CursorLocation = adUseClient

Rs.CursorType = adOpenStatic

Rs.LockType = adLockBatchOptimistic

On Error Resume Next

Rs.Open Sql

If Err.Number <> 0 Then

m_bFlagErro = True

m_sMensagem = Err.Description

On Error GoTo 0

Set Executa = Nothing

Else

On Error GoTo 0

m_bFlagErro = False

If Rs.EOF <> True Then

Rs.MoveFirst

End If

Set Executa = Rs

End If

End Function

 

 

Mais uma vez lembrando que no xp não tenho este problema somente no windows 98

 

 

Obrigado..

 

 

 

 

O problema deve estar na hora que você executa a SQL.

Nessa parte:

Sql = "select * from Imbcliente order by codigo"
Você só joga a instrução SQL para uma variavel, e não executa ela.

 

Esse erro ocorre quando você não abriu a conexão (objecto_connection.open).

 

Mostra a parte aí do seu código onde você conecta ao BD e executa a sql.

 

Algo como objecto_connection.execute ou recordset.open ou algo do tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.