• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

oldskool

Função Salário

8 mensagens neste tópico

Boas ppl! Mais uma dúvida  :) 

Tendo uma BD com duas tabelas, Empregado e Função. A tabela Empregado possui uma PK ID_Emp e uma FK ID_Func. Além desses dois campos existe o Nome e o Salário. Na tabela Função a PK é a ID_Func e além desse campo existe a Função e o Salário. O que pretendo é que todos os meses o campo Empregado_Salario seja actualizado adicionando o campo Função_Salário. Se não perceberam, a tabela Função corresponde às diversas funções que podem ser desempenhadas. Isto é para ser implementado em C# e no page_load da Default, provavelmente. O meu problema está, no ciclo que devo usar, pois não faço ideia de como usar a data  :) O algoritmo que tenho pensado é:

Para cada mês

lê o Empregado_Salario (da BD) e guarda o valor numa variável a

lê o Funcao_Salario (da BD) e guarda o valor numa variável b

soma as duas numa variável c    //para que não surjam problemas de ficarem salários por pagar

grava c no Empregado_Salario

Fim

Já dei umas voltas no google e inda não consegui por isto a funcar...Já tentei tantas maneiras e acabo sempre por me chatear. A última coisa que fiz foi carregar uma arraylist com 12 elementos (os meses) e para cada um fazer o que quero mas nada  :P já estou a desesperar...

Se me explicassem isto utilizando uma arraylist inda mais agradecido ficava mas alternativas também são bem vindas!!  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se percebi bem o que pretendes, mas penso que o que te falta é percorrer os empregados...

Para cada mês

Lê os empregados todos (qualquer coisa como select emp_id from empregado)

Para cada empregado (para cada elemento retornado pelo select anterior)

lê o Empregado_Salario (qualquer coisa como select empregado.salario where emp_id = [elemento actual]) e guarda o valor numa variável a

lê o Funcao_Salario (qualquer coisa como select funcao.salario where emp_id = [elemento actual]) e guarda o valor numa variável b

soma as duas numa variável c    //para que não surjam problemas de ficarem salários por pagar

grava c no Empregado_Salario (qualquer coisa como update empregado set empregado.salario = c)

Fim

Fim

Agora não sei é como é que pretendes fazer avançar os meses...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O SQL não é problema, a ligação à BD também não...o problema é usar a data...como uso a data?? Quanto à BD ele vai adicionar o salário a todos os empregados, indo buscar o valor do salário à tabela das funções...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah, a data mesmo... em que linguagem? C#?

DateTime dt = DateTime.Now; //data actual
int ano = dt.Year ; //ano
int mes = dt.Month; //mes
int dia = dt.Day; //dia
//etc...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, e como uso isso num ciclo para q a operação seja feita SÓ uma vez por mês????????

offtopic: conheces o JP ou o Lima tb de redes e tb do tagus??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmmm podes ter outra tabela com as colunas ano/mes e id_emp e vais metendo pra la os empregados que já receberam e o respectivo mes. E depois só adicionas nos que ainda não receberam.

JP ou Lima... se calhar conheço por outros nomes... são de que ano? É que eu sou de 4º e como tenho as cadeiras quase todas em dia, não conheço praticamente ninguém dos outros anos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bom por tanto keres fazer 1 script k so corres 1 ves por mes certo??? o pa so se fizeres uma aplicaçao "exe" e meter nas tarefas do windows para correr no dia 1 de cada mes ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que a maneira mais correcta até será criar um Job no sql server e fazeres essa actualização.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora