Array
(
)

Sistema de Ponto em CSharp .net

Josivan
   - 21 mar 2013

Boa tarde pessoal, tenho um sistema na minha empresa e no mesmo já contempla o cadastro de funcionários, o sistema foi todo desenvolvido em Delphi 2010, agora estou querendo implementar o controle de ponto dos funcinários (um software a parte) no qual estou querendo usar o CSharp e a mesma tambela de dados dos funcionários do meu sistema.
O banco de dados usado é o Firebird 2.5
IBExpert para gerenciar o banco de dados.
Sistema principal em Delphi 2010
**Sistema de Controle de ponto em CSharp
**O por que de querer fazer isto.
Sou Técnico em Eletrônica e Desenvolvi o relógio de ponto da minha empresa no qual o mesmo salva os dados em um pendriver e dai toda semana tem que descarregar os dados do pendriver no PC e eu estou querendo fazer isso altomáticamente.
A questões são:
Como eu posso está fazendo o uso da mesma tabela no bando de dados com os 2 software(um de cada vez lógico)?
Como eu posso está organizando as entradas e saidas dos fucionários?
Tenho que criar uma outra tabela só para o ponto e usar Chaves Estrangeiras da tabela de funcionários.
Obriago pela oportunidade e é um prazer fazer parte destacomunidade.
Aguardo.

Josivan
   - 23 mar 2013

Ninguem, nenhuma opinião, nem pra dizer se vai ou não dar certo.

Joel Rodrigues
   - 23 mar 2013

Olá, Josivan. Tudo bem?
Vou tentar responder suas perguntas:

Citação:
Como eu posso está fazendo o uso da mesma tabela no bando de dados com os 2 software(um de cada vez lógico)?

Da mesma forma que se pode ter vários executáveis acessando o banco, você pode fazer outra aplicação (agora em C#) para acessar o banco que já está sendo usado pelo primeiro programa em Delphi.

Citação:
Como eu posso está organizando as entradas e saidas dos fucionários?

Você pode criar uma tabela contendo, basicamente, os campos: data/hora de entrada, data/hora de saída e uma referência ao funcionário.

Citação:
Tenho que criar uma outra tabela só para o ponto e usar Chaves Estrangeiras da tabela de funcionários.

Exato. Você não tem como gravar os registros de ponto na própria tabela de funcionários. Precisará criar uma tabela, como a que citei na questão anterior.
Espero ter ajudado. Caso persistam as dúvidas ou surjam novas, fique à vontade para questionar.
Abraço.

Josivan
   - 23 mar 2013

Boa noite Joel

Obrigado por ter respondido e com certeza irão aparecer sim muitas duvidas e játenho mais uma na agulha

No software terei que criar 2 conexões diferentes, uma para acessar a tabla "FUNCONARIOS"(de onde irei pegar os alguns dados do funcionário) e outra para acessar a tabela "PONTO"(onde serão savos os dados dos pontos).

Estou usando:
CSharp Express 2010 (como já havia comentado)
IBExpert (para interagir no Banco de Dados)
Firebird 2.5 (Banco de Dados)

Agora vem as dulvidas.
Você poderia me informar uma maneira ou algum material simples de como acessar o banco de dados Firebird com o CSharp?
No IBExpert eu posso usar como chave estrangeira um campo de tabela que já uma chave estrangeira de outra tabela?

Pesquisei muita coisa na internet, mais quero tirar o máximo de duvidas antes de por a mão na massa mesmo.

Grrato pela atenção

Joel Rodrigues
   - 24 mar 2013

Veja se este link te ajuda a entender como conectar ao Firebird via C#:
http://www.macoratti.net/08/09/c_fbd1.htm

Joel Rodrigues
   - 24 mar 2013

Com relação à segunda questão, não sei se entendi bem. Se possível, dê um exemplo. Mas acho que não terá problema.

Josivan
   - 25 mar 2013

Boa noite Joel
Vou tentar esplicar melhor a segunda pergunta sobre o IBExpert.
Vamos ao exemplo.
Eu tenho 3 tabelas (EMPRESA, FUNCIONARIOS e PONTO)

Na tabela EMPRESA eu tenho:

CREATE TABLE EMPRESA (
CDEMPRESA INTEGER NOT NULL,
);
/*********************************************************************************************************

Na tabela FUNCIONARIO em tenho:

CREATE TABLE FUNCIONARIO (
CDFUNCIONARIO INTEGER NOT NULL,
CDEMPRESA INTEGER,
);
/******************************************************************************/
/**** Primary Keys ****/
/******************************************************************************/
ALTER TABLE FUNCIONARIO ADD PRIMARY KEY (CDFUNCIONARIO);

/******************************************************************************/
/**** Foreign Keys ****/
/******************************************************************************/

ALTER TABLE FUNCIONARIO ADD CONSTRAINT FK_FUNCIONARIO FOREIGN KEY (CDEMPRESA) REFERENCES EMPRESA (CDEMPRESA);
/***************************************************************************************************************

Na tabela PONTO eu tenho:

CREATE TABLE PONTO (
CDFUNCIONARIO INTEGER,
CDEMPRESA INTEGER,
);
/******************************************************************************/
/**** Foreign Keys ****/
/******************************************************************************/

ALTER TABLE PONTO ADD CONSTRAINT FK_PONTO FOREIGN KEY (CDEMPRESA) REFERENCES FUNCIONARIO (CDEMPRESA);
/****************************************************************************************************************

Se vc observar na tabela FUNCIONARIO eu tenho um campo CDEMPRESA que é uma chave estrangeira da tabela EMPRESA certo.

Agora vem o ponto da duvida, na tebela PONTO eu tenho um campo CDEMPRESA que é uma chave estrangeira da tabela FUNCIONARIO que no caso ja usa o campo CDEMPRESA como chave estrangeira da tabela EMPRESA, ou seja, uma chave estrangeira de uma chave estrangeira.

Deu pra entender essa bagunça rsrsrs.

Aguardo retorno.
Té a próxima.

Joel Rodrigues
   - 30 mar 2013

Ah, entendi sim. Mas nesse caso, a tabela ponto não precisa referenciar a tabela empresa, pois ela já referencia a tabela de funcionário que, por sua vez, referencia a de empresas. Sacou?
Ou seja, o ponto refere-se a um funcionário, que já está ligado a uma empresa. Então o ponto não precisa mais se relacionar diretamente com a empresa.
Abraço.

Joel Rodrigues
   - 30 jun 2013

Opa, como ficou esta questão?
Podemos encerrar o tópico?
Abraço.