Basicamente é só um wrapper, só rotinas intermediárias.
Primeira coisa: precisa da variável com conexão, pública ou outro modo pra multithread.
Código: Selecionar todos
AppConexao := ConexaoMySQL() // crie conforme seu servidor
Código: Selecionar todos
PROCEDURE LISTASIMPLES
LOCAL cnSQL := ADOClass():New( AppConexao )
WITH OBJECT cnSQL
:cSQL := "SELECT * FROM CLIENTES ORDER BY NAME"
Execute()
DO WHILE ! :Eof()
? :String( "NOME", 30 )
? :String( "ENDERECO", 30 )
? :String( "CIDADE", 30 )
:MoveNext()
ENDDO
:CloseRecordset()
ENDWITH
RETURN
Pra facilitar conversão, tem rotina pra DBF e SQL.
É trocar o REPLACE campo WITH conteudo por :QueryAdd( "campo", conteudo )
Código: Selecionar todos
WITH OBJECT cnSQL
:QueryCreate()
:QueryAdd( "CODIGO", nCodigo )
:QueryAdd( "NOME", cNome )
:QueryAdd( "ENDERECO", cEndereco )
:DBFQueryExecuteInsert() // em DBF
:QueryExecuteInsert( "CLIENTES" ) // MySQL
// tem também DBFQueryExecuteUpdate()
// e QueryExecuteUpdate( "CLIENTES", "codigo=5" ) // pra atualizar o SQL precisa saber a chave
ENDWITH
a) Executar somente o de DBF
Continua tudo funcionando, apenas trocou o fonte. continua rodando nos clientes normalmente
b) Depois pode executar DBF e SQL
Continua tudo funcionando, mas agora também salva no MySQL
Pode instalar nos clientes e acompanhar o funcionamento
Pode alterar o fonte que quiser, da tabela que quiser, pra deixar de usar DBF e usar MySQL, afinal, tem tudo nos dois
c) Depois deixa só o SQL
Quando não precisar mais do DBF, apenas apaga a linha de salvar em DBF
Já vai estar tudo testado e funcionando.
A classe está mais voltada pra MySQL, mas não impede o uso em outras bases de dados
Com certeza essa é apenas uma parte das funcionalidades.
Mas se aí faz leitura e gravação (inclusão/atualização).... acho que tem a parte mais importante.
Lógico, precisa entender de ADO, SQL, e da base que vai usar, afinal, vai criar tabelas, criar índices, definir o tipo de cada campo como incremental, int, double, decimal, char, varchar, text, date, datetime, etc., codepage do banco de dados, codepage da conexão, etc. precisa conhecer essas coisas primeiro, pra não ter problemas depois.


