Clipper On Line • Ver Tópico - Fechar uma alias com SQLRDD

Fechar uma alias com SQLRDD

Discussão sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

 

Fechar uma alias com SQLRDD

Mensagempor marcos.gurupi » 26 Mar 2015 20:10

Caros, estou usando o codigo abaixo para abrir uma conexao MYSQL gravar um registro e sair, quando executto a funcao uma vez dar certo, acontece q quando executo a segunda vez ele diz q o alias jah estah aberto. Eu pensei q fechando a conexao com SR_END() se fechava tb o alias. Como faco para resolver a questao ?

FUNCTION imp_dup()

#include "sqlrdd.ch"
#include "dbinfo.ch"
#include "mysql.ch"        // Needed if you plan to use native connection to MySQL

#define RECORDS_IN_TEST                   1000
#define SQL_DBMS_NAME                       17
#define SQL_DBMS_VER                        18

REQUEST SQLRDD             // SQLRDD should be linked in
REQUEST SR_MYSQL           // Needed if you plan to use native connection to MySQL
Local Areant:=Select(), vTabela:={}, vCarteira
MsgRun("Abrindo conexao com o banco de impressao.")
cConnString :="MySQL=localhost;UID=banco;PWD=senha;AUTOCOMMIT=1000;DTB=duplicata"
nDetected   := DetectDBFromDSN( cConnString )
If nDetected > 0
   nCnn := SR_AddConnection( nDetected, cConnString )
   If nCnn < 0
      Fim_Run()
      MsgStop("Nao foi possivel conectar ao banco.")
      Select(Areant)
      Return .f.
   Endif
ElSE
   Fim_Run()
   MsgStop("E necessario a instalacao do MYSQL.")
   Select(Areant)
   Return .f.
EndIf
vTabela := SR_ListTables()
vCarteira := vTabela[1]
If !SR_ExistTable(vCarteira)
   MsgStop("Nao foi possivel encontrar a tabela no banco.")
   SR_EndConnection(nCnn)
   Select(Areant)
   Return .f.
EndIf
Hw_Atualiza_Dialogo("Preparando duplicata para impressao.")
USE &vCarteira NEW SHARED VIA "SQLRDD"
Do While .t.
   if travarqivo(5)
      dbappend()
      Replace CNPJ       with RetiraCar(Empresa->CGC)
      Replace Documento  with Receber->Documento
      Replace Codigo     with Receber->Codigo
      Replace Cliente    with Receber->Cliente
      Replace Valor      with Receber->Valor
      Replace Debito     with Receber->Debito
      Replace Emissao    with Receber->Emissao
      Replace Vencimento with Receber->Vencimento
      Replace Nom_Vend   with Receber->Nom_Vend
      Replace TIPO       with Receber->Tipo
      dbunlock()
   Else
      Loop
   Endif
   Exit
Enddo
SR_End()
Select(Areant)
Fim_Run()
Return .t.


O erro:

Error DBCMD/1011  Alias already in use: RECEBER_DBF
Called from ->DBUSEAREA(0)
Called from vendas.prg->IMP_DUP(3776)
Called from quiosquevenda.prg->(b)QUIOSQUEVENDA(69)
Marcos Roberto
NetService Software
marcos.gurupi
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 930
Data de registro: 06 Jul 2004 11:53
Cidade/Estado: Gurupi-TO
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

Fechar uma alias com SQLRDD

Mensagempor marcos.gurupi » 27 Mar 2015 13:34

Caros para efeito de documentacao. O problema foi resolvido. Acontece q o array criado estava local e deve ser private para ser reconhecido pelo ambiente virtual.

Marcos Roberto
Marcos Roberto
NetService Software
marcos.gurupi
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 930
Data de registro: 06 Jul 2004 11:53
Cidade/Estado: Gurupi-TO
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

Fechar uma alias com SQLRDD

Mensagempor Hasse » 02 Out 2016 20:03

Bom dia Marcos.

Estou apanhando para conectar a um Banco Firebird.

Quais os LIB's, CH's e outros que são necessários para conexão com e teu exemplo ?

DetectDBFromDSN
SR_AddConnection
SR_ExistTable
SR_EndConnection
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar de usuário

Hasse
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 815
Data de registro: 19 Out 2004 10:30
Cidade/Estado: Jaraguá do Sul - SC
Curtiu: 0 vez
Mens.Curtidas: 24 vezes

Fechar uma alias com SQLRDD

Mensagempor Mário Isa » 23 Jun 2017 09:17

Alo Marcos.Gurupi

que função é essa que vc está utilizando ?
SR_End()

o nome correto não seria sr_endconnection(numerodaconexaoatual) ?

digo isso pq aqui quando abro uma conexão e fecho o programa começa a se comportar de forma estranha até que se fecha sozinho...

exemplo:
logo após a desconexão do banco a minha função
*******************************
Function VerificaNet( cAddress )
*******************************
LOCAL aHosts
LOCAL cName
InetInit()
IF cAddress == NIL
cAddress := "www.google.com.br"
ENDIF
aHosts := InetGetHosts( cAddress )
IF aHosts == NIL .or. len(aHosts)=0
InetCleanup()
RETURN .f.
endif
InetCleanup()
RETURN .t.


não funciona mais ....
eu a utilizo para verificar se a net tá conectada

ela começa a voltar .f.

:%
Avatar de usuário

Mário Isa
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 902
Data de registro: 07 Jul 2004 13:54
Cidade/Estado: Ilha Solteira-sp
Curtiu: 5 vezes
Mens.Curtidas: 8 vezes

Fechar uma alias com SQLRDD

Mensagempor JoséQuintas » 26 Jun 2017 11:16

Tente esta.

FUNCTION IsInternet( cUrl, nPort )

   LOCAL lOk := .F. , aAddr

   hb_Default( @cUrl, "www.google.com" )
   hb_Default( @nPort, 80 )
   aAddr := hb_socketResolveINetAddr( cUrl, nPort )
   IF ! Empty( aAddr )
      lOk := hb_socketConnect( hb_socketOpen(), aAddr, 2000 )
   ENDIF

   RETURN lOk


Veja isso com mais atenção.
Se não conseguir conectar com mais nada, também não vai conseguir conectar com o MySQL novamente.

Isso de abrir/fechar conexão é problema, quando fiz isso, travava a ponto de ter que reiniciar o ROTEADOR.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Ferramentas de Apoio

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro