jef2_tim Posted October 27, 2005 Report Share Posted October 27, 2005 Ola amigos... Estou tendo este problema em um sistema DOS meu.. nao entendo pq esta dando issu.. a rotina de abertura e criacao e gravacao é a mesma ... esta dando este erro em um cliente meu ... so num... em rede... Se alguem tiver alguma ideia A funcao de rec_lock *------------------- FUNCTION REC_LOCK *------------------- PARAMETER Lretry PRIVATE Lforever Lretry = IF(PCOUNT() == 0,50,Lretry) Lforever = (Lretry == 0) DO WHILE (!RLOCK() .AND. (Lretry > 0 .OR. Lforever)) @ 23,44 SAY SPACE(35) IF Mens_Rede("Travando Registro Arq " + Dbf(),1) == 27 EXIT ENDIF Lretry-- ENDDO IF (!RLOCK()) Mens_Rede("Travamento N„o Foi Completado !",2) RETURN .F. ENDIF RETURN .T. Funcao para append blanc no bd *------------------- FUNCTION ADD_REC *------------------- PARAMETER Lretry PRIVATE Lforever,Lorder Lretry = IF(TYPE("Lretry") != "N",50,Lretry) Lforever = (Lretry == 0) Lorder = INDEXORD() SET ORDER TO 0 DO WHILE Lretry > 0 .OR. Lforever APPEND BLANK IF !NETERR() EXIT ENDIF @ 23,44 Say Space(35) IF Mens_Rede("Adicionando em " + DBF() + " ESC Cancela",1) == 27 EXIT ENDIF Lretry-- ENDDO SET ORDER TO Lorder IF NETERR() Mens_Rede("Falha ao Adicionar Registros !",2) Close_All() @ 23,44 SAY SPACE(35) RETURN .F. ENDIF RETURN .T. Bem... é issu ae.. valeu amigos... Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 27, 2005 Author Report Share Posted October 27, 2005 Ola amigos... Estou tendo este problema em um sistema DOS meu.. nao entendo pq esta dando issu.. a rotina de abertura e criacao e gravacao é a mesma ... esta dando este erro em um cliente meu ... so num... em rede... Se alguem tiver alguma ideia A funcao de rec_lock *------------------- FUNCTION REC_LOCK *------------------- PARAMETER Lretry PRIVATE Lforever Lretry = IF(PCOUNT() == 0,50,Lretry) Lforever = (Lretry == 0) DO WHILE (!RLOCK() .AND. (Lretry > 0 .OR. Lforever)) @ 23,44 SAY SPACE(35) IF Mens_Rede("Travando Registro Arq " + Dbf(),1) == 27 EXIT ENDIF Lretry-- ENDDO IF (!RLOCK()) Mens_Rede("Travamento N„o Foi Completado !",2) RETURN .F. ENDIF RETURN .T. Funcao para append blanc no bd *------------------- FUNCTION ADD_REC *------------------- PARAMETER Lretry PRIVATE Lforever,Lorder Lretry = IF(TYPE("Lretry") != "N",50,Lretry) Lforever = (Lretry == 0) Lorder = INDEXORD() SET ORDER TO 0 DO WHILE Lretry > 0 .OR. Lforever APPEND BLANK IF !NETERR() EXIT ENDIF @ 23,44 Say Space(35) IF Mens_Rede("Adicionando em " + DBF() + " ESC Cancela",1) == 27 EXIT ENDIF Lretry-- ENDDO SET ORDER TO Lorder IF NETERR() Mens_Rede("Falha ao Adicionar Registros !",2) Close_All() @ 23,44 SAY SPACE(35) RETURN .F. ENDIF RETURN .T. Bem... é issu ae.. valeu amigos... Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 27, 2005 Author Report Share Posted October 27, 2005 Ola amigos... Estou tendo este problema em um sistema DOS meu.. nao entendo pq esta dando issu.. a rotina de abertura e criacao e gravacao é a mesma ... esta dando este erro em um cliente meu ... so num... em rede... Se alguem tiver alguma ideia A funcao de rec_lock *------------------- FUNCTION REC_LOCK *------------------- PARAMETER Lretry PRIVATE Lforever Lretry = IF(PCOUNT() == 0,50,Lretry) Lforever = (Lretry == 0) DO WHILE (!RLOCK() .AND. (Lretry > 0 .OR. Lforever)) @ 23,44 SAY SPACE(35) IF Mens_Rede("Travando Registro Arq " + Dbf(),1) == 27 EXIT ENDIF Lretry-- ENDDO IF (!RLOCK()) Mens_Rede("Travamento N„o Foi Completado !",2) RETURN .F. ENDIF RETURN .T. Funcao para append blanc no bd *------------------- FUNCTION ADD_REC *------------------- PARAMETER Lretry PRIVATE Lforever,Lorder Lretry = IF(TYPE("Lretry") != "N",50,Lretry) Lforever = (Lretry == 0) Lorder = INDEXORD() SET ORDER TO 0 DO WHILE Lretry > 0 .OR. Lforever APPEND BLANK IF !NETERR() EXIT ENDIF @ 23,44 Say Space(35) IF Mens_Rede("Adicionando em " + DBF() + " ESC Cancela",1) == 27 EXIT ENDIF Lretry-- ENDDO SET ORDER TO Lorder IF NETERR() Mens_Rede("Falha ao Adicionar Registros !",2) Close_All() @ 23,44 SAY SPACE(35) RETURN .F. ENDIF RETURN .T. Bem... é issu ae.. valeu amigos... Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 27, 2005 Report Share Posted October 27, 2005 O PROGRAMA ESTA PEDINDO, QUE VOCE ABRA O BANCO EM MODO EXCLUSIVO = EXCLUSIVE. TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU. Bad Boy - São Paulo. kmt_karinha@pop.com.br FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 27, 2005 Author Report Share Posted October 27, 2005 Mas kapi c eu abrir exclusive entao nao terei compartilhamento... preciso dele em rede.. shared... Nao entendo... pq exclusive Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 27, 2005 Author Report Share Posted October 27, 2005 Ola Kapi... ja estou abrindo em modo EXCLUSIVE e mesmo assim da erro... testei com SHARED tbm da o mesmo problema... Será q no momento de gravar o registro eu tenha de dar um reclock... ? Pq na funcao de add_Rec nao tem... Talvez um rec_lock antes do append precisa sera? *------------------- FUNCTION ADD_REC *------------------- PARAMETER Lretry PRIVATE Lforever,Lorder Lretry = IF(TYPE("Lretry") != "N",50,Lretry) Lforever = (Lretry == 0) Lorder = INDEXORD() SET ORDER TO 0 DO WHILE Lretry > 0 .OR. Lforever APPEND BLANK IF !NETERR() EXIT ENDIF @ 23,44 Say Space(35) IF Mens_Rede("Adicionando em " + DBF() + " ESC Cancela",1) == 27 EXIT ENDIF Lretry-- ENDDO SET ORDER TO Lorder IF NETERR() Mens_Rede("Falha ao Adicionar Registros !",2) Close_All() @ 23,44 SAY SPACE(35) RETURN .F. ENDIF RETURN .T. Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Editado por - jef2_tim on 27/10/2005 13:15:02 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 27, 2005 Report Share Posted October 27, 2005 SE VOCE VAI DAR UM APPEND, PRIMEIRO, PRECISA TRAVAR O BANCO, PARA QUE OUTROS USUARIOS NAO ACESSEM O BANCO, DEPOIS QUE APPENDEAR, VOCE LIBERA O BANCO PARA TODOS OS USUARIOS. REVEJA A LOGICA. VEJA NO LIVRO DO VILIAN COMO FAZER. TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU. Bad Boy - São Paulo. kmt_karinha@pop.com.br FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE Quote Link to comment Share on other sites More sharing options...
pauloaraujo Posted October 27, 2005 Report Share Posted October 27, 2005 Jef, Em que linha do programa está dando o erro ?? Mostre o fonte onde você chama o REC_LOCK() e também o ADD_REC() Provavelmente, após bloquear o registro ou dar o append blank, você desviou para outro registro ou dbf. Detalhes: . Tem que estar SET EXCLUSIVE OFF . Para o APPEND BLAN não precisa do RLOCK() . Kapiaba, onde você ouviu que precisa bloquear um DBF para se dar UM ÚNICO APPEND BLANK??? Paulo/CONTATO SISTEMAS Clipper53b / FW26 / Blinker70 Ajudar é um prazer, agradecer é uma obrigação PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005 Inscreva-se: http://www.installsis.com.br/encontro Editado por - pauloaraujo on 27/10/2005 14:08:25 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 27, 2005 Report Share Posted October 27, 2005 . Kapiaba, onde você ouviu que precisa bloquear um DBF para se dar UM ÚNICO APPEND BLANK??? ERREI, ENTENDI ERRADO. LI ERRADO E RESPONDI ERRADO. É UM APPEND BLANK, NAO UM APPEND FROM... SORRY PAULO E JEF. SÓ PRECISA TRAVAR O REGISTRO. KE DUREZA! É A SEDE DE BRAHMAS. hehehehehehe. TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU. Bad Boy - São Paulo. kmt_karinha@pop.com.br FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE Editado por - kapiaba on 27/10/2005 14:55:37 Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 27, 2005 Author Report Share Posted October 27, 2005 Ola paulo... O Add_Rec e o Rec_Lock as funcoes estao na mensagem acima.. acho q na primeira mesagem. Eu nao entendo... estou abrindo em modo EXCLUSIVE o SET EXCLISVE ja esta OFF ... e nao entendo pq esta dando o Lock required *------------------- FUNCTION REC_LOCK *------------------- PARAMETER Lretry PRIVATE Lforever Lretry = IF(PCOUNT() == 0,50,Lretry) Lforever = (Lretry == 0) DO WHILE (!RLOCK() .AND. (Lretry > 0 .OR. Lforever)) @ 23,44 SAY SPACE(35) IF Mens_Rede("Travando Registro Arq " + Dbf(),1) == 27 EXIT ENDIF Lretry-- ENDDO IF (!RLOCK()) Mens_Rede("Travamento N„o Foi Completado !",2) RETURN .F. ENDIF RETURN .T. Funcao para append blanc no bd *------------------- FUNCTION ADD_REC *------------------- PARAMETER Lretry PRIVATE Lforever,Lorder Lretry = IF(TYPE("Lretry") != "N",50,Lretry) Lforever = (Lretry == 0) Lorder = INDEXORD() SET ORDER TO 0 DO WHILE Lretry > 0 .OR. Lforever APPEND BLANK IF !NETERR() EXIT ENDIF @ 23,44 Say Space(35) IF Mens_Rede("Adicionando em " + DBF() + " ESC Cancela",1) == 27 EXIT ENDIF Lretry-- ENDDO SET ORDER TO Lorder IF NETERR() Mens_Rede("Falha ao Adicionar Registros !",2) Close_All() @ 23,44 SAY SPACE(35) RETURN .F. ENDIF RETURN .T. Estas sao as funcoes quando vou grvar um registo eu chamo Select 1 If Add_Rec() Replace Cod With (M_Safuni-1), Nme With Mnme Des_Lock(2) Endif A funcao Des_Lock é esta *------------------- FUNCTION DES_LOCK *------------------- Parameters Desativa If Desativa = 1 Unlock Else Unlock All Endif If Comm_Ok Commit Endif valeu amigos Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 27, 2005 Report Share Posted October 27, 2005 MOSTRE COMO ESTA ABRINDO O BANCO JEF. TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU. Bad Boy - São Paulo. kmt_karinha@pop.com.br FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE Quote Link to comment Share on other sites More sharing options...
aferra Posted October 27, 2005 Report Share Posted October 27, 2005 tente isso, se é que eu entendi bem. Funcao para append blanc no bd *------------------- FUNCTION ADD_REC *------------------- PARAMETER Lretry PRIVATE Lforever,Lorder Lretry = IF(TYPE("Lretry") != "N",50,Lretry) Lforever = (Lretry == 0) Lorder = INDEXORD() SET ORDER TO 0 DO WHILE Lretry > 0 .OR. Lforever APPEND BLANK IF dbRlock() // trava o registro IF !NETERR() //verifica se não tem erro de rede EXIT ENDIF ELSE EXIT ENDIF @ 23,44 Say Space(35) IF Mens_Rede("Adicionando em " + DBF() + " ESC Cancela",1) == 27 EXIT ENDIF Lretry-- ENDDO SET ORDER TO Lorder IF NETERR() Mens_Rede("Falha ao Adicionar Registros !",2) Close_All() @ 23,44 SAY SPACE(35) RETURN .F. ENDIF RETURN .T. Alessandro F. Silva - Ribeirão Preto/SP aferracini@terra.com.br FW2.0d + CL53b + Blinker 7.0 MSN: ferracini_silva@hotmail.com Quote Link to comment Share on other sites More sharing options...
pauloaraujo Posted October 27, 2005 Report Share Posted October 27, 2005 Não, Jef Não te pedi para mostrar novamente as funções. Pedi para você mostrar a parte do programa onde elas são chamadas. A do ADD_REC() você mostrou e pelo que và não tem erro. AlÃas, "Lock Required" não dá nem a pau no APPEND BLANK. A do REC_LOCK() você não mostrou. Verifique em que linha está dando o erro, que provavelmente deva ser num REPLACE. Mostre o que está antes do REC_LOCK() até o REPLACE, que eu acho que o erro está aÃ. Paulo/CONTATO SISTEMAS Clipper53b / FW26 / Blinker70 Ajudar é um prazer, agradecer é uma obrigação PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005 Inscreva-se: http://www.installsis.com.br/encontro Editado por - pauloaraujo on 27/10/2005 15:11:24 Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 27, 2005 Author Report Share Posted October 27, 2005 Paulo eu estou usando desta forma A linha de erro eu nao tenho pq nao estou no cliente q esta dando o problema, estarei indo pra la agora. tem internet la e vou ficar on aqui no forum... Assim eu uso para incluir um registro usando a funcao ADD_REC. Select 1 If Add_Rec() Replace Cod With (M_Safuni-1), Nme With Mnme Des_Lock(2) Endif Eu nao to usando o rec_lock aqui... Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Editado por - jef2_tim on 27/10/2005 15:11:31 Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 27, 2005 Author Report Share Posted October 27, 2005 Paulo... Por eu nao ter mandado parametro para o lretry ele esta recebendo entao 50, ou seja... ele vai tentar 50 vezes... Ele esta entrando do Do While Porem ele da o lock no momento de gravar o registro... tanto que apos o erro, se eu abrir o banco de dados... eu vejo um novo registro criado, porem vazio... sem nenhum dado em nenhum dos campos. O interessante é q isto esta acontecendo somente em um cliente meu... os outros, q usam o mesmo sistema nao da problema algum.. bem, estou indo pra la agora... e na rede deles vou comecar a mexer e fazer testes.. e entao ficara ate mais facil para trocar ideias... t daqui a pouco amigos... kAPIABA..... A Forma q eu abro os bancos é desta forma *------------------- FUNCTION OPEN_FILE *------------------- PARAMETERS Lfile,Lindex,Lexcl,Lretry,Lextsys PRIVATE Lforever,Lntx1,Lntx2,Lntx3,Lntx4,Lntx5,Lntx6,Lntx7,Lntx8,Lntx9,Lntx10 Lindex = IF(TYPE("Lindex") != "C","",Lindex) Lretry = IF(TYPE("Lretry") != "N",10,Lretry) Lexcl = IF(TYPE("Lexcl") != "L",F_Arqsys,Lexcl) Lextsys = IF(TYPE("Lextsys") != "N",1,Lextsys) Lfile = ALLTRIM(Lfile) + "." + If(Right(Alltrim(Lfile),6) = [sAFCFG],[MEM],If(Lextsys = 1,F_Extsys,Mextalm)) Lforever = Lretry == 0 IF !FILE("&Lfile") Mens_Rede("ARQUIVO NŽO EXISTE " + Chr(26) + " " + Lfile,2) Close_All() RETURN .F. ENDIF @ 10,10 clear to 12,20 @ 11,12 say lExcl DO WHILE (Lretry > 0 .OR. Lforever) IF Lexcl USE (Lfile) EXCLUSIVE ELSE USE (Lfile) ENDIF IF USED() EXIT ENDIF @ 23,44 SAY SPACE(35) IF Mens_Rede("Aguardando &Lfile.. ESC Cancela",1) == 27 EXIT ENDIF Lretry-- ENDDO IF USED() Lntx01 = Open_Indx(@Lindex) ; Lntx02 = Open_Indx(@Lindex) Lntx03 = Open_Indx(@Lindex) ; Lntx04 = Open_Indx(@Lindex) Lntx05 = Open_Indx(@Lindex) ; Lntx06 = Open_Indx(@Lindex) Lntx07 = Open_Indx(@Lindex) ; Lntx08 = Open_Indx(@Lindex) Lntx09 = Open_Indx(@Lindex) ; Lntx10 = Open_Indx(@Lindex) Lntx11 = Open_Indx(@Lindex) ; Lntx12 = Open_Indx(@Lindex) For Tst_Ntx = 1 To 12 Cto_Ntx = Strzero(Tst_Ntx,2) Nme_Ntx = Alltrim(Lntx&Cto_Ntx.) If Len(Alltrim(Nme_Ntx)) > 0 IF !FILE("&Nme_Ntx.") Saf_Ero(5,Nme_Ntx) Close_All() RETURN .F. ENDIF Endif Next SET INDEX TO &Lntx01.,&Lntx02.,&Lntx03.,&Lntx04.,&Lntx05.,&Lntx06.,&Lntx07.,&Lntx08.,&Lntx09.,&Lntx10.,&Lntx11.,&Lntx12. RETURN .T. ELSE @ 23,44 SAY SPACE(35) Mens_Rede("ERRO ABERTURA ARQUIVO " + Lfile,2) Close_All() @ 23,44 SAY SPACE(35) RETURN .F. ENDIF eu chamo esta funcao desta forma Select 1 If !Open_File("SAFUNI","UNIRAZAO.SAF") Return(.T.) Endif Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Editado por - jef2_tim on 27/10/2005 15:43:08 Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 27, 2005 Author Report Share Posted October 27, 2005 Ola amigos... o problema de lock required éra pq eu estava alterando a variavel para F no meio do caminho do sistema e entao ele abria o banco sem exclusive e ae dava o problema.. ja resolvi... mas agora surgiu um outro problema que é o seguinte: Nem sempre, mas as vezes acontece do sistema nao conseguir abrir o banco de dados quando outra maquina esta usando o banco... DO WHILE (Lretry > 0 .OR. Lforever) IF Lexcl USE (Lfile) EXCLUSIVE ELSE USE (Lfile) ENDIF IF USED() EXIT ENDIF @ 23,44 SAY SPACE(35) IF Mens_Rede("Aguardando &Lfile.. ESC Cancela",1) == 27 EXIT ENDIF o IF USED nao esta voltando true... e entao esta dando a mensagem de rede aguardando XXXXXXX Esc cancela... ele tenta 50 vezes e nao consegue e entao sai da tela... o interessante é q nem sempre acontece isso... tem momentos q sim... oq pode ser? Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 27, 2005 Report Share Posted October 27, 2005 AI, É PORQUE O BANCO NAO ESTA SHARED->COMPARTILHADO. TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU. Bad Boy - São Paulo. kmt_karinha@pop.com.br FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 27, 2005 Author Report Share Posted October 27, 2005 Eu nao consigui entender ainda.. pq o sistema funciona normal em NNN clientes em rede XP, Novel, 98, 95, e aqui neste cliente com XP nao roda... Kapi.. a forma que estou abrindo os arquivos esta errada? Eu os abro com exclusive... e nao com shared... qual a forma correta de se abrir os meus bancos de dados para que isso nao ocorra... será q pode haver algo com algum tipo de configuracao de rede? valeu Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 27, 2005 Report Share Posted October 27, 2005 SHARED, É QUANDO TODOS OS USUARIOS PODEM USAR. EXCLUSIVE, É QUANDO APENAS UM USUÃRIO PODE USAR. MAS, SE VOCE DIZ, QUE EM ALGUNS LUGARES FUNCIONA, E QUE SOMENTE EM UM CLIENTE, NAO, VERIFIQUE AS CONFIGURACOES DO ATUOEXEC.NT E CONFIG.NT E SE VOCE COPIOU O COMMAND.COM PARA O DIRETORIO RAIZ -> C:\ Abraços. TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU. Bad Boy - São Paulo. kmt_karinha@pop.com.br FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE Quote Link to comment Share on other sites More sharing options...
pauloaraujo Posted October 27, 2005 Report Share Posted October 27, 2005 Jef, Como você disse, o sistema está instalado em outros clientes, sem qualquer problema, certo??? Tá me cheirando problemas na rede. Peça para o responsável por ela verificar placas com velocidades diferentes, cabos, virus, instalação elétrica, usuários desligando o micro com o pé e o sistema no ar, etc. Agora, não me conformei com a sua resposta sobre o "lock required". Fala sério, esse erro dá na inclusão??? Nessa rotina que você mostrou aqui??? Como??? Um abraço Paulo/CONTATO SISTEMAS Clipper53b / FW26 / Blinker70 Ajudar é um prazer, agradecer é uma obrigação PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005 Inscreva-se: http://www.installsis.com.br/encontro Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 28, 2005 Author Report Share Posted October 28, 2005 Ola paulo ... Sim o erro da na inclusao de dados... Ontem, no cliente, eu alterei a forma de abrir os bancos de dados... na rotina Open_File que postei, eu alterei a primeira linha do USE para SHARED, e a segunda USE para Exclusive... Entao funcionou normalmente... agora estou alterando alguns bancos de dados temporarios para chamar a opcao EXCLUSIVE que de uns errinhos pois eles nao podem ser compartilhados e estao sendo.. ae estou alterando... Eu nao tenho muiiito conhecimento de programacao pra rede e tal... mas eu tbm fiquei perdido pq ... funciona normal em todo mundo usando o USE exclusive... Eu tbm acho q é rede mas la neste cliente é complicado pq pelo meu pouco conhecimento de rede eu teria de provar que é rede entao achei mais facil localizar uma forma de usar o sistema na rede deles... Inclusive paulo... se vc puder me dar uma ideia de uma rotina de abertura de arquivos compartilhados e nao compartilhados... seria legal.. pq na instalacao do sistema eu digo se é MONO ou MULTI usuario... queria ver pq talvez esta rotina minha nao esteja muito certa.... Bem... é issu ae... valeu manos... um xharbraco... e se puder me dar uma dica ae de abertura dos arquivos... até mesmo baseado na forma q eu uso.. no open_file seria legal.. flow tches Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Quote Link to comment Share on other sites More sharing options...
vagner Posted October 28, 2005 Report Share Posted October 28, 2005 Olá Jef, Vc pode colocar direto como shared, pois mesmo que vc esteja usando mono, não teria problema dele abrir em modo compartilhado Vagner Wirts Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 Quote Link to comment Share on other sites More sharing options...
vagner Posted October 28, 2005 Report Share Posted October 28, 2005 Vou postar aqui a que eu uso /**************************************************************************/ /* Programa de Tratamento de Arquivos para Multiusuario ou Mono Usuario */ /* Programador - Vagner Wirts */ /* Programa - Abre_Arq.Prg - Desenvolvimento 03/97 */ /**************************************************************************/ // #Include "FiveWin.Ch" /*---- Funcao Abre Arquivos ----*/ /* cArqui = Nome do Arquivo */ /* cIndex = Nome do Indice */ /* cAlias = Alias do Arquivo */ /*------------------------------*/ Func Abre(cArqui,cIndex,cAlias) Local lRet_ := .F. Local nTecla,aOp,nXx,lOk,aInd_1,nQtde := 0 Local lMens Local cDrive := DbSetDriver() lOk := .T. If ValType(cIndex) # "U" If !File(cIndex+Iif(cDrive=="DBFCDX".or.cDrive=="ADS",".Cdx",".Ntx")) lOk := .F. Endif Endif If !lOk MsgAlert("Faça a Reorganização do Arquivo"+CRLF+cArqui,"Atenção !!") Close Data Else If ValType(cAlias) == "U" ; cAlias := cArqui ; Endif If Select(cAlias) # 0 Sele &cAlias Close Endif lMens := .T. Do Whil .T. DbUseArea(.T.,Iif(cDrive=="DBFCDX","DbfCdx","ADS"),cArqui,cAlias,.T.) If Used() lRet_ := .T. Exit Endif Enddo If lRet_ Sele &cAlias DbSetIndex(cIndex) Endif Endif Rele aInd_,cArqui,cIndex,cAlias Retu(lRet_) /*---- Funcao para Trava Registro em Multi-Usuario ----*/ Func Trava() Local nTrava_Tec,lTrava_Par := .F. Do Whil (!Rlock()) nTrava_Tec := Inkey(0.01) If nTrava_Tec == 27 ; lTrava_Par := .T. ; Exit ; Endif Enddo Retu(lTrava_Par) /*---- Procedimento para Adicionar Registros em Multi-Usuario ----*/ Proc Adiciona() Do Whil .T. DbAppend() If ! NetErr() ; Exit ; Endif Enddo Retu("") /*---- Funcao para Eliminar Registros ----*/ Func Elimina() Local lSn := MsgYesNo("Confirme a Exclusão ?") Local lRe := .F. If lSn If !Trava() ; Dele ; lRe := .T. ; Endif Unlock Endif Retu(lRe) /*---- Funcao do XSetFocus() ----*/ Func XSetFocus(oObj) Local oTempo := "" Define Timer oTempo Interval 10 Of oObj:oWnd Action (oObj:SetFocus(),oObj:SetPos(0),oTempo:Deactivate()) Activate Timer oTempo Retu("") Como Usar : Abertura do Arquivo, se retornar .T. - Abriu, caso contrário não conseguiu abrir lOk1 := Abre(oSistema:cServidor__+oSistema:cArqu_Geral+".Dbf\Vendedor",oSistema:cServidor__+oSistema:cArqu_Geral+".Cdx\Vendedor","Vendedor") Para Adicionar Registros Adiciona() Repl .... Unlock Para Travar o Registro para poder gravar : Ele retorna .T. ->Não Travou, .F. ->Travou If !Trava() Repl ... Endif Unlock Para Eliminar, (Nem me lembrava que tinha isso (heheheeh)) If !Elimina() Registro nao pode ser eliminado Endif Vagner Wirts Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 28, 2005 Report Share Posted October 28, 2005 citação:Vou postar aqui a que eu uso /**************************************************************************/ /* Programa de Tratamento de Arquivos para Multiusuario ou Mono Usuario */ /* Programador - Vagner Wirts */ /* Programa - Abre_Arq.Prg - Desenvolvimento 03/97 */ /**************************************************************************/ // #Include "FiveWin.Ch" /*---- Funcao Abre Arquivos ----*/ /* cArqui = Nome do Arquivo */ /* cIndex = Nome do Indice */ /* cAlias = Alias do Arquivo */ /*------------------------------*/ Func Abre(cArqui,cIndex,cAlias) Local lRet_ := .F. Local nTecla,aOp,nXx,lOk,aInd_1,nQtde := 0 Local lMens Local cDrive := DbSetDriver() lOk := .T. If ValType(cIndex) # "U" If !File(cIndex+Iif(cDrive=="DBFCDX".or.cDrive=="ADS",".Cdx",".Ntx")) lOk := .F. Endif Endif If !lOk MsgAlert("Faça a Reorganização do Arquivo"+CRLF+cArqui,"Atenção !!") Close Data Else If ValType(cAlias) == "U" ; cAlias := cArqui ; Endif If Select(cAlias) # 0 Sele &cAlias Close Endif lMens := .T. Do Whil .T. DbUseArea(.T.,Iif(cDrive=="DBFCDX","DbfCdx","ADS"),cArqui,cAlias,.T.) If Used() lRet_ := .T. Exit Endif Enddo If lRet_ Sele &cAlias DbSetIndex(cIndex) Endif Endif Rele aInd_,cArqui,cIndex,cAlias Retu(lRet_) /*---- Funcao para Trava Registro em Multi-Usuario ----*/ Func Trava() Local nTrava_Tec,lTrava_Par := .F. Do Whil (!Rlock()) nTrava_Tec := Inkey(0.01) If nTrava_Tec == 27 ; lTrava_Par := .T. ; Exit ; Endif Enddo Retu(lTrava_Par) /*---- Procedimento para Adicionar Registros em Multi-Usuario ----*/ Proc Adiciona() Do Whil .T. DbAppend() If ! NetErr() ; Exit ; Endif Enddo Retu("") /*---- Funcao para Eliminar Registros ----*/ Func Elimina() Local lSn := MsgYesNo("Confirme a Exclusão ?") Local lRe := .F. If lSn If !Trava() ; Dele ; lRe := .T. ; Endif Unlock Endif Retu(lRe) /*---- Funcao do XSetFocus() ----*/ Func XSetFocus(oObj) Local oTempo := "" Define Timer oTempo Interval 10 Of oObj:oWnd Action (oObj:SetFocus(),oObj:SetPos(0),oTempo:Deactivate()) Activate Timer oTempo Retu("") Como Usar : Abertura do Arquivo, se retornar .T. - Abriu, caso contrário não conseguiu abrir lOk1 := Abre(oSistema:cServidor__+oSistema:cArqu_Geral+".Dbf\Vendedor",oSistema:cServidor__+oSistema:cArqu_Geral+".Cdx\Vendedor","Vendedor") Para Adicionar Registros Adiciona() Repl .... Unlock Para Travar o Registro para poder gravar : Ele retorna .T. ->Não Travou, .F. ->Travou If !Trava() Repl ... Endif Unlock Para Eliminar, (Nem me lembrava que tinha isso (heheheeh)) If !Elimina() Registro nao pode ser eliminado Endif Vagner Wirts Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 id=quote>id=quote>MILAGRE! MILAGRE! MILAGRE! ATÉ QUE ENFIM, ENTENDI ALGUMA KOISA QUE O VAGNER ESCREVEU... hehehehehehe TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU. Bad Boy - São Paulo. kmt_karinha@pop.com.br FW 2.3C CLIPPER 5.3B BLINKER 7.0 WORKSHOP.EXE Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted October 28, 2005 Author Report Share Posted October 28, 2005 uauauauuaua Kapi c é flórida.. uauauauauauuauaua Vag... eu estou tendo um problema q nao estou entendendo... Eu crio um temporario que recebe produtos da minha venda, eu posso incluir e excluir estes produtos... o interessante é q nao hora q vou excluir um produto da lista ele me pede para usar modo exclusivo... eu nao entendo pq tenho de usar mdo exclusivo neste caso... Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar 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.