trigger que gera codigo de numero o.s (ordem de serviço) ou codigo do cliente
boa noite não sei se já foi resolvido alguma cituação porem não estou achando em lugar nenhum por isso comunidade devmedia se foi postado errado me desculpe
o meu caso é o seguinte :
estou mexendo com o banco de dados mysql, para visualizar as tabelas estou usando navicat premium, a ide do sistema é o delphi radio studio 10.3.3.
tipo de sistema que estou criando: é um sistema de ordem de serviço
tipo do problema: na hora que vou abrir a ordem de serviço quando vou apertar o botao nova o.s na tabela abertura_os, coluna numero_os tem que gerar o numero da o.s no momento da inserção.
motivo da trigger eu tenho o id_os que já está no autoincrement porem quero que meu campo numero_os tambem gere autoincrement no momento que vou abrir a o.s so que não apareça por exemplo -1 e sim o numero negativo e se eu cancelar como não salvei ele não modifique ele simplemente cancele a opreção de inserção
alguem por favor me ajuda alguma alma caridosa
o meu caso é o seguinte :
estou mexendo com o banco de dados mysql, para visualizar as tabelas estou usando navicat premium, a ide do sistema é o delphi radio studio 10.3.3.
tipo de sistema que estou criando: é um sistema de ordem de serviço
tipo do problema: na hora que vou abrir a ordem de serviço quando vou apertar o botao nova o.s na tabela abertura_os, coluna numero_os tem que gerar o numero da o.s no momento da inserção.
motivo da trigger eu tenho o id_os que já está no autoincrement porem quero que meu campo numero_os tambem gere autoincrement no momento que vou abrir a o.s so que não apareça por exemplo -1 e sim o numero negativo e se eu cancelar como não salvei ele não modifique ele simplemente cancele a opreção de inserção
alguem por favor me ajuda alguma alma caridosa
Socrates Foschera
Curtidas 0
Respostas
Emerson Nascimento
23/03/2021
não entendi:
não apareça -1 e sim o número negativo???
quero que meu campo numero_os tambem gere autoincrement no momento que vou abrir a o.s so que não apareça por exemplo -1 e sim o numero negativo e se eu cancelar como não salvei ele não modifique ele simplemente cancele a opreção de inserção
não apareça -1 e sim o número negativo???
GOSTEI 0
Socrates Foschera
23/03/2021
não entendi:
não apareça -1 e sim o número negativo???
é o seguinte estou desenvolvendo um sistema de pdv e geração de ordem de serviço preciso que na ordem de serviço me mostre o numero da o.s assim que clicar no botao novo
quero que meu campo numero_os tambem gere autoincrement no momento que vou abrir a o.s so que não apareça por exemplo -1 e sim o numero negativo e se eu cancelar como não salvei ele não modifique ele simplemente cancele a opreção de inserção
não apareça -1 e sim o número negativo???
GOSTEI 0
Emerson Nascimento
23/03/2021
um número sequencial apresentado em tela para o usuário numa inclusão deve ser "perdido" ao cancelar o processo.
digo isso porque sempre penso em um sistema multi-usuário.
vejamos o seguinte cenário:
a última OS gravada é a 000005.
daí estação1 e depois estação2 iniciam o processo de inclusão.
--- >>> se o sistema for baseado em autoincremento:
estação1 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 confirma a inclusão. número 000006 foi gerado. deve ser apresentado ao usuário.
estação1 confirma a inclusão. número 000007 foi gerado. deve ser apresentado ao usuário.
--- >>> se o sistema for baseado no último número + 1:
estação1 receberá o número 000006 (porque o último gravado é o 000005).
estação2 receberá o número 000006 (porque o último gravado é o 000005).
estação2 confirma a inclusão. número 000006 foi efetivado.
estação1 confirma a inclusão. número precisa trocar para 000007 (e avisar ao usuário).
--- >>> se o sistema for baseado no conceito de incremento ao incluir:
* é necessário ter uma tabela de sequenciadores (no Firebird isso é nativo, não sei como funciona no MySQL) *
estação1 receberá o número 000006
estação2 receberá o número 000007
estação2 confirma a inclusão. número 000007 foi efetivado.
estação1 CANCELA a inclusão. número 000006 será perdido.
qual procedimento será utilizado?
digo isso porque sempre penso em um sistema multi-usuário.
vejamos o seguinte cenário:
a última OS gravada é a 000005.
daí estação1 e depois estação2 iniciam o processo de inclusão.
--- >>> se o sistema for baseado em autoincremento:
estação1 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 confirma a inclusão. número 000006 foi gerado. deve ser apresentado ao usuário.
estação1 confirma a inclusão. número 000007 foi gerado. deve ser apresentado ao usuário.
--- >>> se o sistema for baseado no último número + 1:
estação1 receberá o número 000006 (porque o último gravado é o 000005).
estação2 receberá o número 000006 (porque o último gravado é o 000005).
estação2 confirma a inclusão. número 000006 foi efetivado.
estação1 confirma a inclusão. número precisa trocar para 000007 (e avisar ao usuário).
--- >>> se o sistema for baseado no conceito de incremento ao incluir:
* é necessário ter uma tabela de sequenciadores (no Firebird isso é nativo, não sei como funciona no MySQL) *
estação1 receberá o número 000006
estação2 receberá o número 000007
estação2 confirma a inclusão. número 000007 foi efetivado.
estação1 CANCELA a inclusão. número 000006 será perdido.
qual procedimento será utilizado?
GOSTEI 0
Socrates Foschera
23/03/2021
um número sequencial apresentado em tela para o usuário numa inclusão deve ser "perdido" ao cancelar o processo.
digo isso porque sempre penso em um sistema multi-usuário.
vejamos o seguinte cenário:
a última OS gravada é a 000005.
daí estação1 e depois estação2 iniciam o processo de inclusão.
--- >>> se o sistema for baseado em autoincremento:
estação1 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 confirma a inclusão. número 000006 foi gerado. deve ser apresentado ao usuário.
estação1 confirma a inclusão. número 000007 foi gerado. deve ser apresentado ao usuário.
--- >>> se o sistema for baseado no último número + 1:
estação1 receberá o número 000006 (porque o último gravado é o 000005).
estação2 receberá o número 000006 (porque o último gravado é o 000005).
estação2 confirma a inclusão. número 000006 foi efetivado.
estação1 confirma a inclusão. número precisa trocar para 000007 (e avisar ao usuário).
--- >>> se o sistema for baseado no conceito de incremento ao incluir:
* é necessário ter uma tabela de sequenciadores (no Firebird isso é nativo, não sei como funciona no MySQL) *
estação1 receberá o número 000006
estação2 receberá o número 000007
estação2 confirma a inclusão. número 000007 foi efetivado.
estação1 CANCELA a inclusão. número 000006 será perdido.
qual procedimento será utilizado?
cara não entedi eu so quero gerar o numero da o.s no modo de edição do banco de dado e não sei como fazer a trigger
digo isso porque sempre penso em um sistema multi-usuário.
vejamos o seguinte cenário:
a última OS gravada é a 000005.
daí estação1 e depois estação2 iniciam o processo de inclusão.
--- >>> se o sistema for baseado em autoincremento:
estação1 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 confirma a inclusão. número 000006 foi gerado. deve ser apresentado ao usuário.
estação1 confirma a inclusão. número 000007 foi gerado. deve ser apresentado ao usuário.
--- >>> se o sistema for baseado no último número + 1:
estação1 receberá o número 000006 (porque o último gravado é o 000005).
estação2 receberá o número 000006 (porque o último gravado é o 000005).
estação2 confirma a inclusão. número 000006 foi efetivado.
estação1 confirma a inclusão. número precisa trocar para 000007 (e avisar ao usuário).
--- >>> se o sistema for baseado no conceito de incremento ao incluir:
* é necessário ter uma tabela de sequenciadores (no Firebird isso é nativo, não sei como funciona no MySQL) *
estação1 receberá o número 000006
estação2 receberá o número 000007
estação2 confirma a inclusão. número 000007 foi efetivado.
estação1 CANCELA a inclusão. número 000006 será perdido.
qual procedimento será utilizado?
GOSTEI 0
Socrates Foschera
23/03/2021
um número sequencial apresentado em tela para o usuário numa inclusão deve ser "perdido" ao cancelar o processo.
digo isso porque sempre penso em um sistema multi-usuário.
vejamos o seguinte cenário:
a última OS gravada é a 000005.
daí estação1 e depois estação2 iniciam o processo de inclusão.
--- >>> se o sistema for baseado em autoincremento:
estação1 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 confirma a inclusão. número 000006 foi gerado. deve ser apresentado ao usuário.
estação1 confirma a inclusão. número 000007 foi gerado. deve ser apresentado ao usuário.
--- >>> se o sistema for baseado no último número + 1:
estação1 receberá o número 000006 (porque o último gravado é o 000005).
estação2 receberá o número 000006 (porque o último gravado é o 000005).
estação2 confirma a inclusão. número 000006 foi efetivado.
estação1 confirma a inclusão. número precisa trocar para 000007 (e avisar ao usuário).
--- >>> se o sistema for baseado no conceito de incremento ao incluir:
* é necessário ter uma tabela de sequenciadores (no Firebird isso é nativo, não sei como funciona no MySQL) *
estação1 receberá o número 000006
estação2 receberá o número 000007
estação2 confirma a inclusão. número 000007 foi efetivado.
estação1 CANCELA a inclusão. número 000006 será perdido.
qual procedimento será utilizado?
cara não entedi eu so quero gerar o numero da o.s no modo de edição do banco de dado e não sei como fazer a triggerdigo isso porque sempre penso em um sistema multi-usuário.
vejamos o seguinte cenário:
a última OS gravada é a 000005.
daí estação1 e depois estação2 iniciam o processo de inclusão.
--- >>> se o sistema for baseado em autoincremento:
estação1 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 não receberá qualquer número, porque será incrementado somente ao efetivar a inclusão no banco de dados.
estação2 confirma a inclusão. número 000006 foi gerado. deve ser apresentado ao usuário.
estação1 confirma a inclusão. número 000007 foi gerado. deve ser apresentado ao usuário.
--- >>> se o sistema for baseado no último número + 1:
estação1 receberá o número 000006 (porque o último gravado é o 000005).
estação2 receberá o número 000006 (porque o último gravado é o 000005).
estação2 confirma a inclusão. número 000006 foi efetivado.
estação1 confirma a inclusão. número precisa trocar para 000007 (e avisar ao usuário).
--- >>> se o sistema for baseado no conceito de incremento ao incluir:
* é necessário ter uma tabela de sequenciadores (no Firebird isso é nativo, não sei como funciona no MySQL) *
estação1 receberá o número 000006
estação2 receberá o número 000007
estação2 confirma a inclusão. número 000007 foi efetivado.
estação1 CANCELA a inclusão. número 000006 será perdido.
qual procedimento será utilizado?
GOSTEI 0