Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
18 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 18 Visitantes :: 1 Motor de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
TRY BEGIN E FLOCK()

17/4/2017, 10:32 por AJC

Pessoal estou tendo alguns problemas de gravação em rede, estou usando
try begin, mas vi algo na …

Comentários: 0

Exportar Dados Campo Memo Tabela DBF

10/4/2017, 10:28 por fcampos

Olá bom dia.

Estou tentando exportar os dados de algumas tabelas em formato dbf pelo foxpro.
O …

Comentários: 2

Função EVL()

8/4/2017, 12:18 por Clebervfp

Bom dia a todos.
Vim compartilhar de uma Função do próprio VFP que me benefício muito.
Função …

Comentários: 0

COMO BLOQUEAR REGISTRO OU TABELA NO VISUAL FOXPRO PARA GRAVAÇÃO EM REDE

3/4/2017, 10:29 por AJC

Pessoal estou tendo um problema que acontece sempre busco na minha tabela de clientes o ultimo …

Comentários: 2

Controlar Scanner Twain

31/3/2017, 17:31 por Kleber R Bento

Estou usando o EZTW32.DLL para criar uma ferramenta que escaneia e gera PDF. Porém com esses …

Comentários: 0

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

Os nossos membros postaram um total de 48 mensagens em 25 assuntos

Campo Integer(autoinc)

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

Resolvido Campo Integer(autoinc)

Mensagem por Julio em 1/3/2010, 10:35

Bom Dia Pessoal


Surgiu uma duvida aqui.

Se o sistema vai funcionar multiusuário, por exemplo em um form de cadastro de produtos varios usuários podem cadastrar produtos ao mesmo tempo, neste caso estarei utilizando o campo INTEGER(AUTOINC) para que o mesmo de o numero do produto automaticamente.

Sempre que é acionado o append blank é dado um novo número e depois gravado, mas se o processo e interrompido pelo usuário por exemplo clicando em desfazer o registro e anulado. Até aqui tudo certo.

Se for aberto um novo registro com o número 50 o proximo será 51 mas se esse código 51 foi cancelado o proximo sera 52.

Como fazer para o integer assumir a sequencia coreta de numeração?


julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por mfelis em 1/3/2010, 10:45

Usando o Integer Auto não será possivel mesmo excluindo o Registro.para isso terá que ter uma outro campo do tipo Numeric.e ai o seu form vai controlar os codigos assim ele poderá assumir o outro use o campo do Integer Auto para pesquisas com ID e Index
avatar
mfelis
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Tales Ruan em 1/3/2010, 10:46

Isto é por causa do campo autoinc.

Uma solução seria você tornar o campo integer ou numeric e usar um código próprio de autoincremento no momento que adiciona um registro.

Talvez tenha uma maneira de alterar o próximo valor do campo (aparece quando você usa o comando Modify table) mas isto eu não sei como fazer.
avatar
Tales Ruan
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por mfelis em 1/3/2010, 10:52

nao tem como alterar o proximo se tentar fazer isto ele vai alterar os outros registros.O melhor jeito é criar uma função para na hora de salvar verificar o proximo numero e assim se houver cancelamento poderá reutilizar o numero.alem de poder personalizar colocar zeros
avatar
mfelis
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Tales Ruan em 1/3/2010, 10:58

Tem como mudar o próximo valor sim.. Abra uma tabela e use o comando modify structure. Posicione em cima de um campo autoinc e na direita, tem a sessão autoincrement. Tem um campo Next Value lá.

Este campo eu não sei alterar via código..
avatar
Tales Ruan
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por mfelis em 1/3/2010, 10:59

mas se ele tiver usando com multiclientes o Fox não vai deichar abrir como Exclusive para Fazer a Alteração.
avatar
mfelis
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Marcos Guedes em 1/3/2010, 11:02

Julio, o campo autoinc ele funciona é incrementado por operação (idependente se a operação será bem sucedida, ou não.)

Para evitar o uso de registros sem necessidade, o ideal é você substituir o APPEND por INSERT INTO.

Para controle dos códigos você poderá criar um campo do tipo INTEGER e quando cofirmada a inclusão, fazer o seguinte:

Código:
SELECT suaTabela
GO BOTTOM
m.proximo = suaTabela.campoInteger+1

INSERT INTO suaTabela (campoProduto, campoCodigo) VALUES ("nome produto", m.proximo)

Resolve?

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Julio em 1/3/2010, 11:09

Pessoal

Na verdade eu tenho uma tabela para controlar estes codigos, que ao gravar um produto novo verifico o ultimo gravado e somo +1, so que tive duvida se estiver utilizando em rede em qual momento devo gravar o incremento na tabela. Qual usuário mandou gravar primeiro???

Marcos.

Utilizo o exemplo da apostila caminho das pedras em meu botão gravar tenho este comento

*!* Atualiza os dados na tabela
IF NOT TABLEUPDATE(.T.)
Thisform.TratarErro()
RETURN
ENDIF

Coloco o insert dentro deste IF ?

Obrigado

Julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Marcos Guedes em 1/3/2010, 11:12

o usuário que gravou primeiro é o que tiver o menor valor no campo autoincremento.

Como eu havia dito, não há com que se preocupar com o controle deste campo.

É automático!

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Julio em 1/3/2010, 14:23

Marcos

O campo que estou usando para controle do codigo é ID_PRODUTO N(10) com indice candidate.
Esta ocorrendo erro quando clico no botão gravar.
Mensagem erro:

uniqueness of index ID_PRODUTO is violated.

Meu código no botão gravar:
Código:
  SELECT produtos  &&suaTabela
  GO BOTTOM
  m.proximo = produtos.id_produto + 1  &&suaTabela.campoInteger+1

  INSERT INTO produtos (id_produto,id_controle,descricao_produto,unidade,;
  Qtd_est_atu,Qtd_est_max,Qtd_est_min,Qtd_est,Saldo_inicial,valor_unitario,;
  entrada,saida);
    VALUES (m.proximo,m.var0,m.var1,m.var2,m.var3,m.var4,m.var5,;
      m.var6,m.var7,m.var8,m.var9,m.var10)

Julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Marcos Guedes em 1/3/2010, 14:29

Julio, este erro está ocorrendo porque você está tentando incluir um código que já existe!

Na hora de incluir os dados, você não pode inserir valores para o campo autoinc, logo este campo não constará no comando INSERT.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Julio em 1/3/2010, 17:00

Marcos

Fiz algumas alterações, o campo id_produto alterei o indice para regular, voce acha que eu posso ter algum problema no futuro?

Quanto a inclusão e numeração do codigo agora esta ok.

Gostaria se possivel saber como é gravado uma alteração ao clicar no botão EDITAR, quando se utiliza INSERT na inclusão.

Obrigado

Julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Marcos Guedes em 1/3/2010, 17:26

Se vai dar problema, ou não, dependerá de como estais fazendo a aplicação.

O que ocorre é que, no fox, os registros não são realmente excluídos quando utilizamos o "DELETE FROM ...", mas sim marcados para serem deletados.

Ou seja, quando pedimos ao fox que exclua um registro, ele marca o registro e o deixa oculta se estivermos utilizando o
SET DELETED ON. Em caso contrário, se utilizamos SET DELETED OFF, veremos todos os registros os quais foram "deletados".

Para que sejam realmente deletados, faz-se necessário abrirmos a tabela em modo exclusivo e utilizarmos o comando PACK. Este irá excluir o registro definitivamente.

Mas... digamos que após termos deletado um registro, precisemos recuperá-lo... Para isto:
- utilizamos o comando "SET DELETED OFF"
- localizamos o registro
- encontrando-o, utilizamos o comando "RECALL"

Em resumo...

Para o fox, DELETE FROM... envia o registro para a lixeira. PACK apaga o registro definitivamente.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por hugo em 1/3/2010, 17:57

muito bom marcos!

_________________
"A tristeza é a falta de alegria, mais sem ela eu não poderia entender a alegria do fato de que a felicidade existe!"
Helio Leites - [Você precisa estar registrado e conectado para ver este link.]
avatar
hugo
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Julio em 2/3/2010, 09:56

Marcos

Me desculpe, nao entendi a msg, quer dizer ate entendi e sempre utilizo este comando para nao vizualizar os registros deletados.

Minha duvida é como gravar os dados quando se realiza uma alteração em um registro ja gravado na tabela. Para incluir utilizo o INSERT e para alterar?


Julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Marcos Guedes em 2/3/2010, 10:00

Para alterar:
Código:
UPDATE suaTabela SET campo=valor WHERE condicao=resultado

Consulte também este link:
[Você precisa estar registrado e conectado para ver este link.]

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Julio em 2/3/2010, 11:44

Pessoal

para encerrar este topico

Gostaria de saber como zera o campo auto incremento?

julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Marcos Guedes em 2/3/2010, 11:58

Código:
USE suaTabela IN SELECT("suaTabela") ALIAS("suaTabela") EXCLUSIVE
SELECT suaTabela
MODIFY STRUCTURE

Altere o campo "Next Value" para "1"

Confira na imagem:

[Você precisa estar registrado e conectado para ver esta imagem.]

Resolve?

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Campo Integer(autoinc)

Mensagem por Julio em 2/3/2010, 13:29

Marcos

Obrigado

Consegui zerar o campo auto incremento

Julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


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