Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
11 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 11 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
Bloquear edição do ListBox

17/6/2010, 15:13 por Julio

Pessoal

Boa Tarde!

Tnho uma listbox apenas para exibir o resultado.
Preciso bloquear a listbox …

Comentários: 17

automação do mozilla e chrome

15/1/2017, 12:16 por Handerson Mildroz

Boa tarde a todos!

Sou iniciante no VFP. Preciso de ajuda, pois tenho um código que usa o …

Comentários: 0

COMO ESTÃO DESENVOLVENDO EM WEB?

22/8/2016, 10:48 por AJC

Pessoal, já lí sobre vários topicos aqui no forum sobre desenvolvimento web
mas ainda nada …

Comentários: 2

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 0

dll pertocheck

15/12/2016, 12:45 por FERNANDOMATRELLA

Alguem teria ja desenvolvido a comunicação com essa dll estou tento muito trabalho aqui e nenhum …

Comentários: 1

Estatísticas
Temos 6988 usuários registrados
O último usuário registrado atende pelo nome de lucasburitis

Os nossos membros postaram um total de 3 mensagens em 1 assuntos

USAR COMANDO INSERT EM REDE

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

USAR COMANDO INSERT EM REDE

Mensagem por AJC em 5/8/2015, 14:20

Pessoal, estou já algum tempo usando o insert,update...em rede usando tabelas
livres .dbf, mas mesmo usando try cache e outros recursos, quando alguem abre
a tabela usando select em outro estação, bloqueia a gravação nesta mesma tabela
em outras situações, quando uso select a tabela é aberta exclusive ou shared?
Resumindo como resolver esta situação.
Antonio

AJC
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Re: USAR COMANDO INSERT EM REDE

Mensagem por lardecristo em 6/8/2015, 09:23

Qual o comando você usa para abrir a tabela quando vai usar o Select?? Copie aqui, por favor a parte do código, se for possível é claro. Mas por favor que seja o pedaço do código.

lardecristo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Re: USAR COMANDO INSERT EM REDE

Mensagem por AJC em 6/8/2015, 21:10

Bom quando uso select faço diretamente sem abrir a tabela usando USE.
No caso fiz alguns testes e vi que o arquivo esta sendo usado em outra estação, quando tento incluir ou alterar algum registro na tabela o TRY checa que está sendo usado e não grava a informação, tento fechar a tabela na inclusão, mas mostra arquivo em uso e não consigo fechar e ai vai.

****VERIFICA ULTIMO NUMERO DO PEDIDO
gecur = g_cur() &&funcao gera nome para cursor
SELECT numero FROM pediv INTO CURSOR &gecur
IF .NOT. EMPTY(numero)
SELECT MAX(PEDIV.NUMERO) FROM PEDIV INTO ARRAY ULTIMOREGISTRO
IF _TALLY # 0
G_NUMERO = ULTIMOREGISTRO + 1
ELSE
G_NUMERO = 1
ENDIF
ELSE
G_NUMERO = 1
ENDIF
*

TRY

*INSERINDO DADOS EM:PEDIV - AJC CONSULTORIA E SISTEMAS
INSERT INTO PEDIV( ;
NUMERO,NFE,EMI,CNPJ,INSC,FOR,FANTASIA,BAIXA,SITU,CHAVE,OBS,CNPJT,NOMET,INSCT,ENDT,UFT,CIDT,CIF,COMISSAO,ACORDO,PFATU,OPER,PLACA );
VALUES( ;
G_NUMERO,G_NFE,G_EMI,G_CNPJ,G_INSC,G_FOR,G_FANTASIA,G_BAIXA,G_SITU,G_CHAVE,G_OBS,G_CNPJT,G_NOMET,G_INSCT,G_ENDT,G_UFT,G_CIDT,G_CIF,G_COMISSAO,;
G_ACORDO,G_PFATU,G_OPER,G_PLACA )

Catch to loException
dadoserro=""+;
CHR(13)+CHR(10)+'Número do erro: '+Transform(loException.ErrorNo)+;
Chr(13)+CHR(10)+'Mensagem do erro: '+loException.Message+;
Chr(13)+CHR(10)+'Linha do erro: '+TRANSFORM(loException.LineNo)+;
Chr(13)+CHR(10)+'Procedimento: '+loException.Procedure


MessageBox('ATENÇÃO! Ocorreu o erro:'+dadoserro,0+64,'ATENÇÃO')

hora=SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)
arquivo_erro = CURDIR()+"\log\Exe"+dtos(DATE())+hora+".log"

retornadirerro=DIRECTORY("LOG")
IF retornadirerro=.f.
MD LOG
ENDIF

STRTOFILE(dadoserro,arquivo_erro,0)
ENDTRY


gecur = g_cur()
SELECT * FROM PEDIV ORDER BY NUMERO INTO CURSOR &gecur
LOCATE FOR NUMERO = G_NUMERO
THISFORM.PCAMPOS()
ENDIF

AJC
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Re: USAR COMANDO INSERT EM REDE

Mensagem por lardecristo em 7/8/2015, 01:56

Nesta parte do código não há problemas, apesar de você não usar o "USE", ele está sendo feito de alguma forma, no seus form's você usa o Data Environment??? Se sim, observe a forma que o mesmo está configurado, tem uma opção "Exclusive", veja como ela está... tem o BufferMode... tem o NoData...veja todos e se possível poste aqui..

PS.: Só lembrando, para os comandos SQL funcionarem é preciso que a tabela esteja aberta, por isso eu disse que a mesma foi aberta em algum instante.

Uma sugestão de teste é criar dois PRG's, os dois abrindo o arquivo "Pediv", usando o USE.
Prg - 1
Código:

USE Pediv SHARED

Prg - 2
Código:

USE Pediv SHARED
INSERT INTO Pediv (Numero) VALUES (10000000)

Rode cada um em uma estação diferente, e veja o que dá.

-----------------------------------------------------

Vou colocar aqui uma sugestão para o seu código, cada um tem um jeito de programar, mas como aqui é um fórum, vou colocar uma pequena sugestão.

Código:

gecur = g_cur() &&funcao gera nome para cursor
SELECT numero FROM pediv INTO CURSOR &gecur
IF .NOT. EMPTY(numero)
  SELECT MAX(PEDIV.NUMERO) FROM PEDIV INTO ARRAY ULTIMOREGISTRO
  IF _TALLY # 0
   G_NUMERO = ULTIMOREGISTRO + 1
  ELSE
   G_NUMERO = 1
  ENDIF
ELSE
   G_NUMERO = 1
ENDIF

Experimente trocar todo o código acima (o que coloquei aqui na resposta) pelo debaixo... e veja se roda de boa.

Código:

SELECT NVL(MAX(Pediv.numero)+1,1) FROM Pediv INTO ARRAY laT

Esta não é a solução do seu problema, mas só uma dica.
Porque o primeiro SELECT apesar de ser pequeno traz muitos dados.

Obs.: Já é de madrugada e eu me empolguei...Smile

lardecristo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Re: USAR COMANDO INSERT EM REDE

Mensagem por AJC em 22/8/2015, 16:46

Lar de cristo , obrigado estou fazendo testes mas ainda estou tendo erros de acesso a tabelas passei a usar conforme voce me disse.
exemplo:
use arquivo shared
select * from arquivo where codigo>100 into cursor teste

AJC
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum