MySql: LibMySql x ADO.

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

MySql: LibMySql x ADO.

Mensagem 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.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

MySql: LibMySql x ADO.

Mensagem 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.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

MySql: LibMySql x ADO.

Mensagem 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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MySql: LibMySql x ADO.

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

MySql: LibMySql x ADO.

Mensagem 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.
Responder