Jump to content
DOUGLASAP

Verificar se nome ja esta cadastrado

Recommended Posts

Amigo,

Me ajuda um uma coisa

tenho

tabela1 ; tabela2 ; tabela3

 

Preciso realizar apenas consulta e talvez imprimir os dados de alguns campos de cada tabela por exemplo

 

 

tabela1

Data | Nome | Setor

 

Tabela2

Hora_f | Hora_p | Hora_u | Hora_total

 

Tabela3

titulo | quantiade | peso

 

* Lembrando que cada tabela faz parte de form diferente Tabela1 esta no form1 | Tabela2 esta no form2 | tabela3 esto no form3

 

 

Como posso realizar apenas Consulta e/ou talvez Imprimir os seguintes dados por exemplo

 

tabela1 | tabela2 | tabela3

| Nome | Setor | Hora_total | titulo | quantiade | peso

 

idéia é a seuguinte

Digitar o numero de contrato e atravez dessa consulta ele me traz as infomações referente ao contrato pegar alguns dados de cada

tabela.

 

Preciso criar uma outra tabela para consultar, e quando mandar salvar nas tabelas, ele salvaria na tabela atual e na tabela_consulta ao mesmo tempo ?

 

Obrigado Amigo

Espero ter explicado direito que eu quero . . . rsrsr

 

Obrigado

Share this post


Link to post
Share on other sites

Olá amigo.

 

Referente a sua dúvida anterior, você conseguiu resolver? Antes de passar para outras, vamos tentar solucionar uma de cada vez.

 

Até a próxima. :thumbsup:

Share this post


Link to post
Share on other sites

ola amigo, ainda não consegui solucionar

estou tentando, minha pergunta do post anterior foi justamente para que quando conseguisse resolver um iria partir para o outro sem essa dúvida que estou.

Share this post


Link to post
Share on other sites

Olá.

 

Tente anexar alguma imagem desse "form" que você digita o equipamento pra ver se consigo entender melhor então.

 

Até a próxima. :thumbsup:

Edited by Eisenheim

Share this post


Link to post
Share on other sites

Olá amigo.

 

Enviei um e-mail pra você, você recebeu? Se possível envie seu projeto nele para que eu possa analisar e te ajudar.

 

Até a próxima. :thumbsup:

Share this post


Link to post
Share on other sites

Olá amigo.

 

Não recebi seu projeto ainda, verifique o e-mail para o qual você está enviando, nem no meu spam está constando nada do tipo.

 

Até a próxima. :thumbsup:

Share this post


Link to post
Share on other sites

Olá Pessoal,

 

DOUGLASAP, o componente ADOTable_cad_equipamento que você está usando para fazer o cadastro é o mesmo que você usa para pesquisar?

 

Se tua resposta for SIM (te explico o motivo do erro caso sua resposta dor SIM), favor criar uma tabela para cadastro e outra para pesquisa aí na tabela de pesquisa você pode usar o código que o Eisenheim já te passou.

 

O código passado pelo nosso amigo Eisenheim foi:

 

 

if DataModule2.ADOTable_cad_equipamento.Locate( 'EQUIPAMENTOS', DBEdit1.Text, [loCaseInsensitive]) then

Begin
showmessage ('Equipamento ja cadastrado');
DataModule2.ADOTable_cad_funcionario.Cancel;
end
else
begin
DataModule2.ADOTable_cad_equipamento.Post;
end;
Abraços!
Edited by samuca_2010

Share this post


Link to post
Share on other sites

Ola amigo Samuca_2010

 

 

Sim, a tabela que utilizo para cadastro é a mesma que utilizo para consulta, o que estou precisando é não deixar que o usuário cadastre o mesmo item novamente.

Mesmo assim é necessário criar uma tabela de consulta ?

Sendo assim, preciso pedir que salve os dados em 2 (duas) tabelas ? DataModule2.ADOtable_consulta_equipamento e DataModule2.ADOTable_cad_equipamento ?

Isso ficaria no mesmo button_inserir ?

 

Obrigado pela atenção

Share this post


Link to post
Share on other sites

Olá amigo.

 

Acredito que o que nosso colega Samuca se refere, é você ter outro objeto Query/Table somente para pesquisa.

Na sua tela de cadastro você tem uma Query/Table que aponta para a tabela de equipamentos. Você teria uma segunda Query/Table para realizar a pesquisa, estando esse apontando também para a tabela de equipamentos.

 

Entendeu?

 

Até a próxima. :thumbsup:

Share this post


Link to post
Share on other sites

Olá amigo.

 

Imagine que no seu form de cadastro você possui uma Table que está buscando as informações da tabela equipamento, cuja a mesma você utiliza para realizar o processo de inclusão/alteração dos registros.

 

Agora, imagine que nesse mesmo form você possui uma outra Table que também está apontando para a tabela de equipamentos, no entanto essa Table você utiliza apenas para fazer uma consulta antes de realizar a inclusão/alteração de novos registros.

 

Um exemplo:

 

tbCadEquipamentos - Essa é a que está vinculada com os controles do seu form na qual você utiliza para realizar as inclusões/alterações de registros da tabela de equipamentos;

 

tbPesqEquipamentos - Essa é a que você usa apenas para pesquisar pelos registros já cadastrados na sua tabela de equipamentos.

 

Conseguiu compreender?

 

Até a próxima. :thumbsup:

Share this post


Link to post
Share on other sites

Douglas,

 

Primeiro, como sua resposta foi SIM, está utilizando o componente ADOTable_cad_equipamento para inserir e pesquisar se o registro já existe, então deixa eu explicar o motivo do erro, ou pelo menos tentar.

 

Enquanto sua tabela (me refiro ao componente AdoTable) estiver em modo de Inserção/Edição, você não pode fazer uma pesquisa utilizando o mesmo componente.

 

Bom, aqui está um exemplo de como utilizar o evento BeforePost, como sugeriu nosso amigo Onesio Lucena Neto,

 

Considerando que seu componente esteja configurado corretamente (ConnectionString, TableName), no evento BeforePost do componente ADOTable_cad_equipamento, dê um duplo click e insira o código:

 

 

procedure TForm1.adotClienteBeforePost(DataSet: TDataSet);
// Daqui para baixo
var
tabelaPesquisa: TADOTable;
begin
// Cria uma tabela dinâmica e informamos que o pai
// desta tabela é o próprio formulário (Form1).
tabelaPesquisa := TADOTable.Create(Self);
// Bloco try finally utilizado para garantir que o objeto
// tabelaPesquisa será destruído assim que o método for
// executado.
try
// Este bloco try except foi utilizado para personalizar a
// mensagem para o usuário.
try
tabelaPesquisa.ConnectionString := adotCliente.ConnectionString;
tabelaPesquisa.TableName := adotCliente.TableName;
// Abre a tabela.
tabelaPesquisa.Open;
// Verifica se o cliente foi encontrado.
if tabelaPesquisa.Locate('Nome', txtNome.Text, []) then
begin
// Mostra a mensagem para o usuário informando que o
// cliente já existe.
ShowMessage('Cliente ' + txtNome.Text + ' já está cadastrado. ');
// Sai do método.
Exit;
end;
except
// Informa o usuário que ocorreu um erro.
ShowMessage('Ocorreu um erro ao pesquisar o cliente.');
end;
finally
// Destroi o objeto tabelaPesquisa.
tabelaPesquisa.Free;
end;
// Até aqui
end;
Agora no botão Salvar, insira o seguinte código:

procedure TForm1.btnSalvarClick(Sender: TObject);
begin
adotCliente.Post;
end;

 

Qualquer dúvida poste ai.

 

Abraço!



Douglas,

 

O código que eu demonstrei acima, deve ser tratado em casos de edição, ok?

 

tratando isso, ficaria assim:

 

if ADOTable_cad_equipamento.State = dsInsert then

begin

Aqui você coloca o código que passei.

end;

 

Assim você está dizendo que o sistema deve validar apenas quando o usuário estiver inserindo, é claro que o usuário pode salvar, clicar em editar e trocar o nome e salvar, mas ai você tem que ver a regra de negócio, ver se é permitido editar o registro, se pode alterar o nome.

 

É possível validar no modo de edição, porém muda a lógica.

Edited by samuca_2010

Share this post


Link to post
Share on other sites

Olá amigos.

 

Ainda existem dúvidas relacionadas nesse tópico?

 

Até a próxima. :thumbsup:

Share this post


Link to post
Share on other sites

Olá amigo.

 

Enviei uma nova MP para você. Verifique sua caixa de entrada.

 

Até a próxima. :thumbsup:

Share this post


Link to post
Share on other sites

BOA TARDE AMIGOS!!ESTOU COM ESSE PROBLEMA TBM... O MEU SALVA SEMPRE... MEU COD.

 

procedure TF_USUARIO.ActSalvarExecute(Sender: TObject);
begin //butão salvar

//VERIFICANDO OS ESPAÇOS EM BRANCO DO EDIT

if Trim(EDT_NOME.Text) = '' then
begin
ShowMessage('Preencha o Campo Nome');
Abort;
end;
if trim(EDTLOGIN.Text) = '' then
begin
ShowMessage('Iserir um login valido');
Abort;
end;
if trim(EDTSENHA.Text) = '' then
begin
ShowMessage('O Campo Senha Não Pode ser Vazio');
Abort;
end;

//***FIM DA VERIFICAÇÃO DOS CAMPOS EM BRANCO

BEGIN
DM.TBL_USUARIOnome.AsString:=EDT_NOME.Text;
DM.TBL_USUARIOsenha.AsString:=EDTSENHA.Text;
DM.TBL_USUARIOstatos.AsString:='A';
DM.TBL_USUARIOdata_cadastro.AsDateTime:=now;
dm.TBL_USUARIOlogin.AsString:=EDTLOGIN.Text;

if DM.TBL_USUARIO.Locate('LOGIN', EDTLOGIN.Text,[]) then //***VERIFICANDO SE USUARIO JA EXISTE
BEGIN
ShowMessage('USUARIOA JA CADASTRADO') ;
DM.TBL_USUARIO.Delete;
Abort;

END
ELSE
DM.TBL_USUARIO.Post;
LimparEdit;
Application.MessageBox('Registro Salvo com Sucesso!','Informação!!!', MB_OK+MB_ICONINFORMATION);
PgCont_Usuario.ActivePageIndex:=1;


END;

//**************

DA A MESSAGE DE USUARIO CADASTRADO MAS MESMO ASSIM QUANDO VEIJO NO BANCO ELE SALVOU!!! ONDE EU ERREI PODEM ME AJUDAR ESTOU COM APENAS 2 MESES ESTUDANDO DELPHI.... OBRIGADO

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.