Narlem Posted October 18, 2012 Report Share Posted October 18, 2012 Olá, Alguem sabe se é possivel usar a funcao Hb_DbCreateTemp, fazendo com que ela abra o arquivo temporario em uma determinada área do select, por exemplo, preciso que o arquivo temporario esteja na area 120, já tentei: select 120 Hb_DbCreateTemp("TEMP",warray) mas ele sempre abre o arquivo na primeira area disponivel, e assim ele ocupa uma area, por exemplo a area 5, que é reservado para um determinado arquivo a ser aberto posteriormente, ocasionando erro. fivewin 8.10 + xharbour Quote Link to comment Share on other sites More sharing options...
Narlem Posted October 18, 2012 Author Report Share Posted October 18, 2012 Olá, Alguem sabe se é possivel usar a funcao Hb_DbCreateTemp, fazendo com que ela abra o arquivo temporario em uma determinada área do select, por exemplo, preciso que o arquivo temporario esteja na area 120, já tentei: select 120 Hb_DbCreateTemp("TEMP",warray) mas ele sempre abre o arquivo na primeira area disponivel, e assim ele ocupa uma area, por exemplo a area 5, que é reservado para um determinado arquivo a ser aberto posteriormente, ocasionando erro. fivewin 8.10 + xharbour Quote Link to comment Share on other sites More sharing options...
emotta Posted October 18, 2012 Report Share Posted October 18, 2012 Nesse caso o seu código que deveria ser alterado para se trabalhar com o ALIAS. Com isso voce nao precisa saber o numero da área que ele foi alocado bem como qualquer alias. É desnecessário isso, mas se mesmo assim desejar faça da seguinte maneira: cAliasTemp := "TEMP" Hb_DbCreateTemp("TEMP",warray) If Select("TEMP") == 5 Hb_DbCreateTemp("TEMP2",warray) TEMP->(DbCloseArea()) cAliasTemp := "TEMP2" EndIf Desse jeito se abrir e cair na area 5, abrindo novamente o alias nao ficara na 5 pois já esta ocupado. Depois de abrir a 2a tabela de memoria é só fechar a primeira que ficou na area 5 e pronto. Pra saber o nome do ALIAS temporario vc relaciona pela variavel cAliasTemp. Abraço citação:Olá, Alguem sabe se é possivel usar a funcao Hb_DbCreateTemp, fazendo com que ela abra o arquivo temporario em uma determinada área do select, por exemplo, preciso que o arquivo temporario esteja na area 120, já tentei: select 120 Hb_DbCreateTemp("TEMP",warray) mas ele sempre abre o arquivo na primeira area disponivel, e assim ele ocupa uma area, por exemplo a area 5, que é reservado para um determinado arquivo a ser aberto posteriormente, ocasionando erro. fivewin 8.10 + xharbour id=quote>id=quote>Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 18, 2012 Report Share Posted October 18, 2012 http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=17545 João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
emotta Posted October 18, 2012 Report Share Posted October 18, 2012 Joao, pelo que eu entendi ele nao tem duvida sobre como usar a funcao e sim em nao abrir o memory table na área 5... citação:http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=17545 João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe id=quote>id=quote>Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 18, 2012 Report Share Posted October 18, 2012 citação:Joao, pelo que eu entendi ele nao tem duvida sobre como usar a funcao e sim em nao abrir o memory table na área 5... citação:http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=17545 João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe id=quote>id=quote>Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD id=quote>id=quote>Ok carissimo, só estou "amarrando" os tópicos. Não se ofenda... Abs, João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
vagner Posted October 18, 2012 Report Share Posted October 18, 2012 Concordo com o Eduardo Motta, O pessoal que usa área fixa, precisa mudar o conceito, além do que vc está forçando uma área que pode não ser a melhor para o processador no momento. Além do que fazendo desse jeito que o EMotta colocou funciona, mas teria que montar dentro de um for next e só fechar as outras áreas qndo vc chegar na área 120 como vc está querendo , o que vai deixar o processo lento ao invés de muito rápido como é o caso do arquivo temporário Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" Quote Link to comment Share on other sites More sharing options...
emotta Posted October 18, 2012 Report Share Posted October 18, 2012 sem magoas... kkk abraço citação: citação:Joao, pelo que eu entendi ele nao tem duvida sobre como usar a funcao e sim em nao abrir o memory table na área 5... citação:http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=17545 João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe id=quote>id=quote>Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD id=quote>id=quote>Ok carissimo, só estou "amarrando" os tópicos. Não se ofenda... Abs, João Santos - São Paulo. joao@pleno.com.br Fone: (11) 3106-2832 / 5150-7341 - TIM https://www.facebook.com/kapiaba FWH 2.7 - xHARBOUR WorkShop.Exe id=quote>id=quote>Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD Quote Link to comment Share on other sites More sharing options...
emotta Posted October 18, 2012 Report Share Posted October 18, 2012 Eu usava selecionando o numero da area quando aprendi clipper, em 1993, acho que no livro do Ramalho ensinava assim... Logo depois aprendi que se poderia trabalhar com alias e entao nunca mais... Com certeza é mais pratico, funcional e o codigo fica muito melhor. É bem mais fácil entender que SELECT CLIENTES é a tabela de clientes do que SELECT 2... Mas uma coisa que talvez dê certo seja colocar o numero que deseja no lugar do alias, mas nao indico... ex: Hb_DbCreateTemp(60,warray) citação:Concordo com o Eduardo Motta, O pessoal que usa área fixa, precisa mudar o conceito, além do que vc está forçando uma área que pode não ser a melhor para o processador no momento. Além do que fazendo desse jeito que o EMotta colocou funciona, mas teria que montar dentro de um for next e só fechar as outras áreas qndo vc chegar na área 120 como vc está querendo , o que vai deixar o processo lento ao invés de muito rápido como é o caso do arquivo temporário Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" id=quote>id=quote>Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD Quote Link to comment Share on other sites More sharing options...
crisvam Posted October 18, 2012 Report Share Posted October 18, 2012 Sempre usei desta forma: If Empty(Select("Venda") ) DBUseArea(.T.,"DBFCDX","SGOVEN","Venda",Modo,.F.) If !NetErr() Venda->(OrdListAdd("Vendas")) // DocVen,DatVen,CpfVen,CopVen Else MsgAlert(" Arquivo: Registro de vendas ","Abrir Arquivos") Endif Endif Nunca tive problemas de alocação de área Crisvam - xHarbour_FWH_10.11 - Whorkshop Quote Link to comment Share on other sites More sharing options...
vagner Posted October 19, 2012 Report Share Posted October 19, 2012 citação:Sempre usei desta forma: If Empty(Select("Venda") ) DBUseArea(.T.,"DBFCDX","SGOVEN","Venda",Modo,.F.) If !NetErr() Venda->(OrdListAdd("Vendas")) // DocVen,DatVen,CpfVen,CopVen Else MsgAlert(" Arquivo: Registro de vendas ","Abrir Arquivos") Endif Endif Nunca tive problemas de alocação de área Crisvam - xHarbour_FWH_10.11 - Whorkshop id=quote>id=quote>Olá Crisvam, Estamos falando de arquivos em memória Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" Quote Link to comment Share on other sites More sharing options...
elitenet Posted October 19, 2012 Report Share Posted October 19, 2012 Eu usava abrindo por numero da area, so depois me toquei que o melhor e o Alias. Como o sistema ja estava pronto eu mudei isso facilmente fazendo o seguinte: Onde eu dava Select 5 mudei para D05, so coloquei a letra D e o 0 antes do numero da area. Passei para alias facilmente mexendo em todos os selects sem riscos de mudar errado. Muriaé-MG FWH 2.6/XHARBOUR/C/C++/JAVA/DELPHI/MYSQL/FIREBIRD Quote Link to comment Share on other sites More sharing options...
crisvam Posted October 20, 2012 Report Share Posted October 20, 2012 citação: citação:Sempre usei desta forma: If Empty(Select("Venda") ) DBUseArea(.T.,"DBFCDX","SGOVEN","Venda",Modo,.F.) If !NetErr() Venda->(OrdListAdd("Vendas")) // DocVen,DatVen,CpfVen,CopVen Else MsgAlert(" Arquivo: Registro de vendas ","Abrir Arquivos") Endif Endif Nunca tive problemas de alocação de área Crisvam - xHarbour_FWH_10.11 - Whorkshop id=quote>id=quote>Olá Crisvam, Estamos falando de arquivos em memória Vagner Wirts "Ele não sabendo que era impossÃvel, foi lá e fez" id=quote>id=quote>OK Vagner, não tinha lido direito os itens, valeu. Crisvam - xHarbour_FWH_10.11 - Whorkshop Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.