Ir ao conteúdo
  • Cadastre-se

Migração Vb4 For Vb6 ! Por Onde Começar ?


Vinicius.es

Posts recomendados

Bom Pessoal é o seguinte...

Trabalho com Delphi mas...

Estou com um sistema que foi feito em vb 4, e que é preciso migrar pra vb 6.

encontra-se alguns problemas diga-se de passagem... sera que alguem pode me dar uma luz.. por onde começar ?

Alguns problemas...

Acredito que as ocx

msrdc32.ocx

spin32.ocx

grid32.ocx

threed32.ocx

mscal.ocx

tdbgs32.ocx

não foram carregadas..... ok vou trocar os componentes que fazem referencia a eles.. conforme me disseram devo carregar

- MSCOMCT2.OCX;

- Microsoft DataGrig Control;

Outros Impactos:

- Retirada do acesso nativo ao banco de dados;

- Troca dos Controles SpinButton pelo UpDown(POssui os eventos DownClick e UpClick);

- Troca dos botões do tipo SSCommand por CommandButton;

- Troca do objeto de calendárrio pelo MonthView;

- Troca do Objeto DbGrid pelo DataGrid;

- Troca de Objetos Grid pelo FlexGrid.

Sera que alguem pode ajudar ?

meu :

MSN [email protected]

ICQ 94523656

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Só uma pergunta: pra quê migrar?

À não ser que a intenção seja usar as APIs do ADO para acesso à dados, que é exclusividade do VB6 em diante (ao invés do antigo DAO e controle Data, do VB5 e anteriores), acho bobagem essa migração, à não ser que seja exigência do cliente, aí é outra coisa.

Porém, acho que você pode usar normalmente alguns desses OCX com o VB6, basta registrá-los. Só que para alguns deles, o regsvr32 não vai funcionar, alguns tem arquivos REG específicos. Depois, é só "empacotar" e distribuir normalmente.

Acho que o pior aí é o probema do Sheridan 3D Controls (threed32.ocx), que dá um monte de problemas com VB6. E tem essa OCX "tdbgs32.ocx", que realmente eu não sei o que é...

Resumindo: faça um levantamento de quais controles realmente não vão funcionar com o VB6, e troque apenas o que for necessário. Do contrário, talvez seja melhor reescrever o programa inteiro, partindo "do zero"....

[]'s

Link para o comentário
Compartilhar em outros sites

Clemente,

Sou eu novamente,

Bom Quanto a migração estou levando.. agora estou em um empasse 2 coisas q observei

Todo acesso ao bd foi feito atraves de OBDC - RDO ( Remote data Objects ), estou procurando e não encontro muita coisa sobre o assunto, vi que a ocx msrdc32 não foi carregada no vb 6. peguei ela e coloquei como referencia no meu projeto,

bom.... apos adicionar ela ( Detalhe nunca fiz isso antes ) estou tentando fazer meu projeto ( q roda perfeitamente em vb 4) rodar no vb6 , mas esta dando erro nas funções que fazem referencia ao rdo por exemplo

rdoErrors.Clear

Set En = rdoCreateEnvironment("NewHome", (Usuario), (Senha))

sera que voce pode me dar uma luz ?

Ao executar o projeto ele verifica um determinado arquivo de configurações, para fazer a comunicação com o obdc abaixo vai as linhas de codigos programaveis ( tipo um config q o usuario deve programar )

----------------------------------

arquivo do tipo CFG cotem as seguintes linhas

Ip Servidor primeira linha : nome do servidor de banco de dados (pode ser o IP)

N segunda linha : usa conexao do windows para logar no banco ? (S/N)

C:/ terceira linha : path da localização das fotos dos imoveis - deve ser lugar comum.

Imob quarta linha : nome do banco de dados no servidor

----------------------------------------------

InicioLoadMDI:

On Error GoTo ErroCfg

Open App.Path & "\Newhome.cfg" For Input As #1

Input #1, cfg_banco

Input #1, cfg_logwindows

Input #1, cfg_path_foto

On Error Resume Next

Input #1, cfg_nomebanco

If Err Then

cfg_nomebanco = "imob"

End If

On Error GoTo 0

On Error Resume Next

Input #1, cfg_genericotexto

If Err Then

cfg_genericotexto = "N"

End If

Close #1

On Error GoTo 0

If Trim(cfg_nomebanco) = "" Then

cfg_nomebanco = "imob"

End If

'avisa que não é sistema de vendas

EhSistemaVendas = False

' aciona opções de login via odbc

If Trim(cfg_logwindows) = "S" Then

Call FastLogin("Newhome") 'log in via odbc

Else

Login.Show 1

End If

JaLeuConfig = False

Exit Sub

------------------------

talvez se voce conseguir me ajudar..

2 perguntas 2 respostas..

1º como é feito pra utilizar rdo num projeto ? tem q ter alguma parte de declaração ? ou de configuração ou é so [ adicionar a referencia ] e meter codigo ?

2º sera que ele não esta conseguindo fazer a conexao com o banco, por não esta lendo os arquivos do NewHome.cfg ? sendo q ele esta configurado corretamente na pasta do projeto.

Obs Open App.Path & "\Newhome.cfg" For Input As #1

[ uma pergunta.. onde ele esta procurando o arquivo ? ]

Clemente .. estou correndo atras dessas soluções se puder me ajudar... vai ser muito bem vindo..

Atenciosamente

Vinicius Wilson

Link para o comentário
Compartilhar em outros sites

Bom...

Esqueci de comentar q quando rodo o programa aparece a seguinte mensagem de erro,

na linha

rdoErrors.Clear ou na

Set En = rdoCreateEnvironment("NewHome", (Usuario), (Senha))

Run-time error '429'

ActiveX component can´t create object

verifiquei o codigo desse erro e li algo sobre talvez estar utilizando uma dll sem registra-la,

???? qual dll ? a do Rdo ? se sim.. q dll é essa ?

valeu

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Acho que talvez esteja faltando instalar o MDAC (Microsoft Data Access Components).

O MDAC é um pacote de objetos para acesso à dados, que já vem com todas as bibliotecas necessárias (RDO, DAO e ADO). Você deve instalar o MDAC tanto no seu ambiente de desenvolvimento, como também nas máquinas dos clientes onde sua aplicação vai rodar.

À não ser que por questões de compatibilidade com outros bancos de dados seja necessário instalar as versões posteriores, sugiro que instale a versão 2.5, que é a mais estável e completa de todas. Mas pode instalar essa e as posteriores também, não tem problema.

Link para a versão 2.5

Instale o MDAC e tente rodar a aplicação: tenho quase que o erro 429 não vai aparecer mais (exceto quanto aos OCX que também podem apresentar esse erro, aí já é outra coisa).

...

Só um pequeno e importante detalhe: se acaso a aplicação for rodar em Windows 95 ou 98, é preciso instalar antes do MDAC um outro pacote preliminar, que é o DCOM (Distributed COM Components). Essas duas versões do Windows (95 e 98) não tem instalado por padrão o pacote DCOM, daí a necessidade de instalar separadamente.

O DCOM tem uma versão para Windows 95 (arquivo "dcom95.exe") e outra para Windows98 (arquivo "dcom98.exe"), portanto é bom ter cuidado na hora de instalar. Você encontra esses arquivos neste link

...

Mas agora quanto ao RDO (Remote Data Objects), eu acho que já é uma tecnologia um tanto obsoleta.

Como o código do RDO é mais ou menos parecido com o do ADO (inclusive o ADO incorporou muita coisa do RDO) talvez fosse interessante você migrar isso também. O ADO (ActiveX Data Objects) é uma tecnologia recente, e tem muito mais futuro, ou melhor: é a única que tem futuro, já que o RDO e DAO já são tecnologias sem suporte. Migrando para o ADO, o novo sistema ficaria muito mais estável e confiável, e as futuras manutenções ficariam bem mais fáceis.

Qual o banco de dados esse sistema que você vai migrar está usando? Se por acaso for o Access, vai ser moleza.

[]'s

Link para o comentário
Compartilhar em outros sites

começei um projeto novo pra testes...

Coloquei como referencia o Rdo 2.0 ( Alias coloquei todos q tava falando de rdo )

no form load coloquei

--------------------------------------------------------

Private Sub Form_Load()

Dim en As rdoEnvironment

Dim cn As rdoConnection

Dim rs As rdoResultset

Dim tb As rdoTable

Dim cl As rdoColumn

Dim er As rdoError

Set en = rdoEngine.rdoCreateEnvironment(0)

Set cn = en.OpenConnection(dsName:="WorkDB", Prompt:=rdDriverNoPrompt, Connect:="Uid=web;pwd=web;database=imob")

End Sub

----------------------------------------------------------

http://msdn.microsoft.com/library/default..../rdpronamex.asp

----------------------------------------------------------

tem como voce analisar comigo ? a linha acima ?

levando em consideração que meu banco foi feito em Sql server, e esta com o nome de imob e a senha e pasw para acessar e web web.

dsName:="WorkDB",

Prompt:=rdDriverNoPrompt,

Connect:=

"Uid=web;

pwd=web;

database=imob"

o que é dsname ?

o que coloco em connect ?

database, coloco o nome do banco ?

no command

------------------------------------------------------------------

private Sub Command1_Click()

Dim rst As rdoResultset

cbocd_municipio.Clear

Screen.MousePointer = vbHourglass

sql = "Select cd_municipio, ds_municipio from municipio where"

Set rst = cn.OpenResultset(sql)

If Err Or rst.EOF Then

Set rst = Nothing

Screen.MousePointer = vbDefault

Exit Sub

End If

Do While Not rst.EOF

cbocd_municipio.AddItem rst!ds_municipio

rst.MoveNext

Loop

Set rst = Nothing

Screen.MousePointer = vbDefault

End Sub

------------------------------------------------------------------------

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por Vinicius.es@28 out 2004, 10:59

dsName:="WorkDB",

Prompt:=rdDriverNoPrompt,

Connect:=

"Uid=web;

pwd=web;

database=imob"

o que é dsname ?

o que coloco em connect ?

database, coloco o nome do banco ?

DSName é "Data Source Name", ou seja: você vai ter que criar um DSN (no Administrador de fontes de dados ODBC, via Painel de Controle, pode ser DSN de usuário mesmo) e o seu banco de dados vai ser acessado por ele.

O resto da string é o nome de usuário, senha e nome da base de dados. Bom, eu nunca fui muito fã de RDO, eu uso mesmo o ADO já há quase cinco anos.

Mas tem um link que vai te ajudar um pouco sobre RDO:

http://www.macoratti.net/rdo.htm

Lamento não poder ajudá-lo via ICQ ou MSN, pois aqui no meu trabalho não é permitido nem sequer instalar esses programas. :(

Link para o comentário
Compartilhar em outros sites

Caro Amigo,

diga q eu estou errado,

Reparei que no vb 4 o Microsoft Remote Data Objects fica na guia "COMPONENTS"

e no vb ele esta na guia "REFERENCES"

OK

Fazendo algumas deduções logicas, fui tentar colocar o tal do RDO na guia COMPONENTS, ele me aparece no toolbox, mas quando clico nele aparece a seguinte mensagem...

License information for this component not found. You do not have an appropiate license to use this functionality in the design environment.

agora diga !

preciso desse component mesmo que eu faça tudo na mão certo ?

aguardo

Link para o comentário
Compartilhar em outros sites

UHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAUUHIOUAhiuHIUHOIUHIUHIAU

Putzzz.... acabei de descobrir porque não ta rodandoooo :muro:

Technical FAQ

Get answers to frequently asked technical questions about Visual Basic 6.0.

Microsoft Visual Basic Learning Edition is designed for the hobbyist or novice programmer. It has the ability to create distributable applications, but lacks many of the tools that a professional developer would need, such as full ODBC support, scrollable cursors, Pool Manager, and Component Manager.

Visual Basic Professional Edition is designed for the individual professional or corporate developer. It has all the tools a typical professional developer would need to build and distribute robust, professional looking applications.

Visual Basic Enterprise Edition is designed for teams of developers creating distributed, high performance client server applications (The Remote Data Objects in the Enterprise Edition provide some of the fastest remote data access available in a tool today).

Estou usando a versão Professional -> q é claro não SUPORTA [ REMOTE DATA OBJECTS ]

bom... beleza... vou agora parar pra pensar o que fazer.... acredito que a solução voce ja tenha sugerido ADO, mas... quero ver se consigo a versao enterprise pra ver essa caquinha rodando...

vou deixar esse topico porque acredito que a migração para ADO vai me trazer varias duvidas...

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...