Consulta a banco em insert e update.

(marcelosantos) #1

Pessoal, Socorro!

Preciso fazer o seguinte e não sei por onde começar. Tenho que fazer o cadastro de pessoas em um banco. Cada pessoa tem a sua ordem de antiguidade. Então, no insert e no update tenho que verificar no banco de dados se existe alguém com aquela antiguidade. Se tiver, faço o insert e preciso incrementar 1 para as pessoas que vêm depois do incluído.

Por exemplo: a antiguidade do insertado é 230. Então, do atual 230 para trás devem ser incrementado 1 na antiguidade.
Se fosse no PHP convencional, daria para desenrolar, mas como estou iniciando no SC, estou meio perdido.

Desde já, agradeço a ajuda dos companheiros.

(leandroauler) #2

Marcelo,

Isso você não consegue reselver com o auto increment do banco de dados?

Explica melhor o que quer fazer…

(marcelosantos) #3

Bom dia Leandro,

Trabalho em um quarte da FAB. Estou fazendo um pequeno sistema para fazer a gestão do pessoal. No militarismo existe a antiguidade do militar. Sempre tem um mais antigo e um mais moderno. Com isso quando chega uma pessoa nova ou sai, a ordem da antiguidade da unidade muda. Quem era 135 pula para 136 e por aí vai.

Já consegui fazer com que o scripcase no evento onAfterInsert faça a inserção dos dados da pessoa e verifique se existe alguém com aquela antiguidade. Agora preciso descobrir como fazer no scripcase para encontrar o total de registros de uma tabela. Usarei esse total em um FOR para fazer um update nas antiguidades. Você sabe como encontrar esse total?

Grato,

(leandroauler) #4

No evento onAfterInsert, você vai usar a macro sc_lookup para fazer o select para pegar o valor do último registro.

Crie um CAMPO qualquer e quando você for fazer o insert, seu código deverá ficar mais ou menos assim no onAfterInsert:

sc_lookup(dataset,"SELECT CAMPO FROM TABELA");
{CAMPO} = {dataset[0][0]} + 1;

sc_execute("INSERT INTO tabela (col1,col2,...) VALUES({CAMPO},col2,...)");

Isso deve funcionar para o que vc precisa.