Página 2 de 2

MySql: LibMySql x ADO.

Enviado: 19 Abr 2021 19:00
por Mario Mesquita
Boa noite, pessoal.

Valeu as dicas. Estou lendo o que posso pra ir entendendo. Baixei umas apostilas de MySql. Achei o help do ADO no site da Microsoft pra entender como funciona. Tem bastante coisa. Melhor ir vendo o feijão com arroz, senão dá pra se perder.

O que o Ramon colocou faz sentido, usar o ADO facilita trasportar o trato com a BD para outra plataforma se necessário. Sei que não é hora de pensar nisso,
mas sempre é bom levar em consideração.

A vantagem da LibMySql é entender mais rapidamente, por gerar um "recordset" em vetor, tá meio mastigado. Mas repetindo a pergunta: ela é usável em produção? Dá pra botar num servidor de cliente e mandar bala? Se sim, vale começar por ela pra ir se acostumando e depois, como disse o Quintas, ver o ADO também e ir se ambientando.

Vou ter muitas dúvidas, já estou tendo de como fazer isso numa rede, mas acho que é botar o carro na frente dos bois tb. Melhor focar na BD.

Vai dar trabalho mas é animador.

Saudações,
Mario.

MySql: LibMySql x ADO.

Enviado: 22 Abr 2021 11:38
por Mario Mesquita
Bom dia a todos.

Nos meus testes, após conectar com o BD, testei se ele está lendo de fato e criei uma tabela simples manualmente.
Copiei a rotina que o Quintas adaptou pra ADO de uma feita pelo Itamar para SqlMix mas tive um problema:

Criei uma função "Testa_Tabelas()" ativada a partir do Main. Ele leu a tabela e exibiu os dados, felizmente.

A coisa estranha é que ele dá erro de compilação na instrução "Rs:Fields.Count". Não vai nem a pau. Mas lendo algo sobre o método,
está correto. Então não sei a causa de não compilar.

Código: Selecionar todos

// Testa as tabelas da base de dados //

FUNCTION Testa_Tabelas()
LOCAL Rs

Rs := oConexao:Execute( "SELECT * FROM teste" )
msginfo( Rs:RecordCount() )
WHILE ! Rs:Eof()
   nFi := 2 //Rs:Fields.Count
   FOR nI = 1 TO nFi //Rs:Fields.Count
      msginfo( Rs:Fields( nI - 1 ):Value ) // A[ nl ] := 
   NEXT
   //msginfo( hb_ValToExp( al ) )
   Rs:MoveNext()
END

Rs:Close()
//oConexao:Close()

RETURN NIL
Se alguém tiver um palpite, agradeço a ajuda.

Saudações,
Mario.

MySql: LibMySql x ADO.

Enviado: 27 Abr 2021 17:43
por Mario Mesquita
Boa noite a todos.

No post anterior, perguntei por quê não estava compilando o "Fields:Count". Na verdade é "Rs:Fields:Count()". Aí deu certo.

Peguei o exemplo mas como ele era pra ilustrar o tópico, estava faltando e como não tenho experiência, não detectei a falta dos "()".

Saudações,
Mario.

MySql: LibMySql x ADO.

Enviado: 27 Abr 2021 18:21
por JoséQuintas
Mario Mesquita escreveu:No post anterior, perguntei por quê não estava compilando o "Fields:Count". Na verdade é "Rs:Fields:Count()". Aí deu certo.
Não tinha visto a mensagem.

Na verdade "." é nas outras linguagens, no Harbour é ":".

Em alguns casos, funciona com e sem parêntesis, então o problema maior era mesmo o "." não reconhecido pelo compilador.

MySql: LibMySql x ADO.

Enviado: 27 Abr 2021 18:40
por Mario Mesquita
Oi, Quintas.

O "." eu saquei primeiro e troquei pra ":", mas acabou precisando do "()", também, pelo menos no HMG. Estava dando erro de compilação.

Começando, né? Ainda tô bem cru nisso aí, mas é um dia de cada vez...

Sds,
Mario.