Jump to content
Fivewin Brasil

ADO RDD xHarbour


kapiaba

Recommended Posts

Na EMotta usamos ADO mesmo com DBF e a performance é melhor do que usando DBFCDX, alem de usar os recursos de select que tornam bem mais praticas qualquer consulta. Pra gravar, atualizar e deletar usamos o DBFCDX por questão de compatibilidade.

Mas nao uso pela ADO RDD.

Segue um exemplo para se divertir:


FUNCTION QueryADO()
LOCAL oConexionAdo := CreateObject("ADODB.Connection")
LOCAL oRecordSet := CreateObject("ADODB.Recordset")
Local cSQL := "SELECT * from AFP"
Local nFields

oConexionAdo:Open("Driver={MySQL ODBC 3.51 Driver};Server="+ALLTRIM(cHost)+";Port=3306;Database="+ALLTRIM(cDataBase)+";User="+ALLTRIM(cUser)+"; Password="+ALLTRIM(cPassword)+";Option=3;")

oRecordSet:CursorLocation := 3  // adUseClient
oRecordSet:CursorType := 3 // adOpenStatic
oRecordSet:ActiveConnection:= oConexionAdo
oRecordSet:Open(cSQL)


//quantidade de campos
nFields := oRecordSet:Fields:Count


IF !oRecordSet:Eof()
	oRecordSet:MoveFirst()
        //While nos registros
	While !oRecordSet:Eof()
   	   For nI := 1 To nFields
	      cNomeCampo     := Alltrim(oRecordSet:Fields:Item(nI-1):Name)   //aqui pega o nome do campo
              uConteudoCampo := oRecordSet:Fields:Item(nCpoAtu):Value        //aqui pega o conteudo do campo
           Next
           oRecordSet:MoveNext()  //move para o proximo registro
        EndDO
EndIf    
   
Return
Link to comment
Share on other sites

  • 3 years later...

E como seria com DBF Eduardo?

Pq vamos supor q o cliente esteja em outra cidade, se consigo acessar DBF via ADO com select, não preciso usar LETODB nem Webservice nem nada...

Só talvez liberar alguma porta no modem (se necessário for) redirecionando e na aplicação direciono pro IP ou dominio de onde estão os DBFs e pronto, correto?

Link to comment
Share on other sites

 

E como seria com DBF Eduardo?

Pq vamos supor q o cliente esteja em outra cidade, se consigo acessar DBF via ADO com select, não preciso usar LETODB nem Webservice nem nada...

Só talvez liberar alguma porta no modem (se necessário for) redirecionando e na aplicação direciono pro IP ou dominio de onde estão os DBFs e pronto, correto?

nunca tentei desta forma... Use meu exemplo acima para tentar algo, se tiver sucesso poste pra gente...

Link to comment
Share on other sites

Testei e funcionou, mas não achei viável

Fiz o seguinte:

Criei uma VPN com o RADMIN VPN nas 2 pontas (ai não precisa liberar firewall nem redirecionar porta)

Ai no Radmin cria um servidor com senha
no terminal no radmin instalado vc conecta nesse teu servidor.
Ai tua VPN vai estar configurada
Faz um net use * \\IPDAVPN\NOMEDOCOMPARTILHAMENTO
Ai pode acessar direto ou via ADO q seria como uma rede interna, porém achei lento

Desvantagens, se for usar em muitos micros, terá q instalar o RADMIN em cada 1 e mapear a unidade
Velocidade tb se for trabalhar direto nas tabelas do server, digamos assim, e não trocando pacotes fica muito lento.

Link to comment
Share on other sites

Poderia, mas eu fiz por fora via prompt de comando mapeando.

Vou testar direto o compartilhamento sim mapear pra ver se funciona, pq o q fiz foi o seguinte

Micro A acessando Micro B em outro local (cidade ou onde for)

Criei uma VPN entre esses 2 micros

O micro A com o Aplicativo pra acessar o banco de dados q esta no Micro B eu mapeei a pasta q tem os dados q esta no micro B via Net use

E acessei via ADO, mas poderia ser um acesso direto pq fico tipo uma rede interna entende

O problema é q a velocidade ficou muito lenta, exemplo se eu acesso o micro B via Terminal Services e executo o app direto lá via TS já acessando os dados e operando a aplicação via TS é sem comparação de mais rápido.

O q eu busco é uma forma de otimizar Matriz e filial.

Estava pensando em centralizar os dados das filiais junto num mesmo servidor da Matriz pra acessar de fora, mas somente tenho conseguido resultados satisfatórios via TS q ganha até do LETODB em performance, pelo menos nos meus testes.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...