Um fato que facilitou muito a conversão, foi a padronização do código, o que me permitiu a busca dos pontos que deveriam ser alterados sem muitas variações.
Descreverei o processo de conversão, para que você, usando qualquer linguagem de programação possa repeti-lo. Como dito na postagem anterior, fiz a conversão utilizando o ORACLE PL/SQL. Não pretendo descer ao nível do código, mostrando os comandos, mas falar de um processo que pode ser repetido. Mostrar o código ajudaria muito pouco, uma vez que existem particularidades em cada aplicação e suas páginas que dificultam a criação de uma ferramenta de conversão automática que atenda a todas as necessidades. A criação dessa ferramenta estava fora do escopo do projeto.
A primeira atividade do programa, foi adicionar à página uma função para buscar uma nova conexão ao Banco de Dados (BD). Isso foi feito colocando um novo INCLUDE do arquivo que contém a função de busca de conexões logo após a primeira linha.
A função de busca de conexões é um pouco mais complexa no novo provider (ORAOLEDB) que no antigo. Então, em uma postagem específica, detalharei a sua construção.
!--#include file="/ConnectionOracle.asp"-->
Depois passei a identificar a criação do RecordSet para transformá-lo. No MSDAORA, a característica era a seguinte:
set rsXxx = server.createObject("ADODB.RecordSet")
rsXxx.open "comandoSql", "String de Conexão", ...
Onde: rsXxx é o nome do RecordSet
Essas linhas passaram a ter as seguintes características no ORAOLEDB:
set conn = getConnection("XXX")
set rsXxx = conn.createDynaset( "comandoSql", 0 )
Observe que eu troquei a criação do objeto no MSDAORA por uma chamada a uma função, onde passo o nome do BD que quero acessar. Essa função é responsável por criar o objeto de conexão e devolvê-lo à página. A função getConnection(BD) foi incluída na página ao adicionarmos um INCLUDE como primeiro passo.
Basicamente o que o programa de conversão precisou fazer, foi encontrar uma linha com o texto "server.createObject" e dentro dela identificar e guardar o nome do "RecordSet", que sempre era a primeira "palavra" depois do comando "set". Identificada a linha e o "RecordSet", bastou trocá-la pela linha com a obtenção da conexão no novo provider.
Depois, precisei localizar uma linha que tivesse a seguinte característica:
"nomeDoRecordSet".open
Bastando trocá-la pelo comando do novo provider.
set "nomeDoRecordSet" = conn.createDynaset( sql , 0 )
Com esses dois passos, conseguir trocar todas as páginas do sistema que continham o comando SQL SELECT.
Na próxima postagem discorrerei como foi a troca da páginas com chamadas às Stored Procedures.
Nenhum comentário:
Postar um comentário