Autor Tópico: Funcão HDBOpen( )  (Lida 4254 vezes)

p.gomes

  • Visitante
Funcão HDBOpen( )
« Online: Agosto 14, 2008, 02:16:51 pm »
Ainda perguntando, eu utilizei a função HDBOpen() para utilizar um arquivo DBF de outro sistema meu, funcionou legal, inclusive abrindo os indices e pesquisando, porém notei que não existe um HDBClose.

Alguma idéia de como fecho esta tabela ?

Já tentei o HClose() nas não deu certo.

Obrigado,

Paulo

Silvio

  • Visitante
Re: Funcão HDBOpen( )
« Responder #1 Online: Agosto 14, 2008, 02:26:22 pm »
Olá, se não for muito pedir, pode passar a rotina que fez ?
Todo material e toda rotina é bem vinda para nós, leigos iniciantes.

grato

silvio

p.gomes

  • Visitante
Re: Funcão HDBOpen( )
« Responder #2 Online: Agosto 14, 2008, 04:29:43 pm »
É mais ou menos assim, meu sistema terá que ler e gravar informações em algumas tabelas no sistema anterior que utiliza DBF.


PROCEDURE Abre_Arq()

nI Is numeric

// Abertura do SELARQ.DBF, nesta tabela estão cadastradas todas as tabelas utilizadas pelo sistema antigo
IF HDBOpen("SELARQ", "SA", "C:\TESTE\SELARQ.DBF") THEN
   
    HDBIndex("SELARQ", "C:\TESTE\SELARQ.NTX", "1") // Este indice é SISTEMA + NOME DO ARQUIVO
   
    IF HReadSeek("SELARQ", "1", ["RECEBER", "CADCLI"]) // Posiciona no registro referente ao sistema CTAS A RECEBER e Arquivo CADCLI
       
        // Abre o cadastro de clientes
        IF HDBOpen("CADCLI", "CC", "C:\TESTE\CADCLI.DBF")
           
            // Verifica os indices do definidos para CADCLI
            FOR nI = 1 TO 15
                 
                  // Nome do arquivo
                  sIndNome = "SA.SE_IND" + NumToString(nI,"02d") // Nome do Indice, tipo CLCODX, CLNOMX
                 
                  IF NoSpace({sIndNome}) <> "" THEN // Usa indirection = Macro substituição
                   
                    // Abre o indice numero nI que vai de [1 a 15]
                    //
                    HDBIndex("CADCLI", sDirRec + NoSpace({sIndNome}) + ".NTX", NoSpace(NumToString(nI,"2d")) )
               
                END
           
            END   
           
            // Aqui posso utilizar normalmente os comandos HReadSeek, HReadFirst, HReadNext ...
            // para ler e gravar no cadastro de clientes do outro sistema.
            //
            //
            //
           
           
            // Depois, tenho que fechar o CADCLI.DBF
            HClose("CADCLI")
       
        END   
   
    END
   
    // Fechar o SELARQ.DBF
    HClose("SELARQ")
END




Olá, se não for muito pedir, pode passar a rotina que fez ?
Todo material e toda rotina é bem vinda para nós, leigos iniciantes.

grato

silvio


Silvio

  • Visitante
Re: Funcão HDBOpen( )
« Responder #3 Online: Agosto 14, 2008, 05:18:45 pm »
Poxa, achei que fosse um bicho de 7 cabeças, é um tanto fácil, quando se tem exemplo.

Obrigado, amigo.

silvio

p.gomes

  • Visitante
Re: Funcão HDBOpen( )
« Responder #4 Online: Agosto 15, 2008, 08:36:37 am »
É praticamente do mesmo jeito que faço com o clipper.

Só não estou conseguindo fechar os arquivos abertos.