DBEdit 2 locate

12/08/2004

0

oii pessoal como vão?? estou um pequeno problema
vejam: tenho uma tabela!! com produtos cadastrados!! quero q quando eu for cadastrar outro produto e cadastrar o mesmo nome, não aceite e apareçe um showmessage ou messagedlg(´Esse nome ja esta Cadastrado´) ja tentei de tudo q é geito e não estou conseguindo vcs poderiam me dar uma informação???


alguem pode me ajduar

tom.e@bol.com.br

fico muito grato


Everton Tom

Everton Tom

Responder

Posts

12/08/2004

Guibas

if table.locate(´campo´,dbedit,[]) then
begin
showmessage(´ja tem´);
end;

ou use sql se tiver usando query!


Responder

12/08/2004

Everton Tom

if FDM.TB_CadFuncionario.locate(´Nome´,DbEdit2.Text,[]) then
begin
showmessage(´ja tem´);

tipo toda vez q vou escrever um nome ele apareçe a mensagen!! sera q foi porq eu coloquei no event exit?


Responder

12/08/2004

Guibas

se ele ta aparecendo a msg é pq tem esse registro :)


Responder

12/08/2004

Everton Tom

o interessante q apareçe até se eu n escrever nada :)


Responder

12/08/2004

Dpbraz

Provavelmente você associou seu dbedit para mesma tabela que você está tentando dar o locate. Com isso o que acontece: Quando você dá um insert na tabela, será incluído um novo registro. Quando você der um locate, o ponteiro desta tabela será movimentado e assim o registro será gravado. Com isso tudo que você digitar neste dbedit será dados como ´já têm´. Para isso use um outro objeto table (com o mesmo tablename) para dar o locate.

Danie


Responder

12/08/2004

Everton Tom

Resumindo eu terei que criar outra tabela? igual a minha original? e colocar o if table.locate(´campo´,dbedit2.text,[]) then
begin
showmessage(´ja tem´);
end;
nela ou na original? colocarei esse codigo no beforepost dela?


Responder

12/08/2004

Everton Tom

eu tou trabalhando com Data Mudule muda alguma coisa?


Responder

12/08/2004

Guibas

trabalhar com datamodule não muda em nada... rapaz veja se colocando 2 table pra msm tabela funcina e faça a pesquisa na que não está em modo de edição....


Responder

12/08/2004

Rpelisson

Galera, só uma dica que eu peguei do pessoal da borland e adotamos nos sistemas todos da empresa...

abolir o locate

utilizem o findkey

memso q o campo nao seja chave.. vc define ele como indexfieldname antes de abrir a tabela e localiza pelo findkey.. é 1000 vezes mais rapido q o locate....

criar duas tabelas pode ser a solução, mas também você pode criar uma rotina para ler e gravar esse produto por edit text normal.. sem estar pelo dbedit direto... vai utilizar um pouco mais de programação, mas vc consegue tratar mais fácil....

[]´s


Responder

12/08/2004

Everton Tom

Galera Tou sendo grato a vcs que me ajudaram na resolução deste problema!! sou muito grato meu e-mail é tom.e@bol.com.br sou de Criciuma precisando de alguma coisa tambem estarei ai tambem no forum p/ poder ajudar em tudo!!!

a vcs [b:010a6cacfe]Guibas, Dpbraz rpelisson[/b:010a6cacfe] muito obrigado vlw galera!!!!


Responder

12/08/2004

Macario

olá programador boa tarde.


Você pode fazer desta forma:


No botão Novo(ou incluir) você apenas prepara a tela para a inclusão dos dados. Ao invés de já disparar um Table.Append (ou Insert).

Ai no evento OnExit de um TEdit(ou TMaskEdit) você usa o seguinte

Table1.IndexFiledName := nome_do_campo;
if not (Table1.FindKey(edit1.text)) then
Table1.Append
else
begin
ShowMessage(´Este nome já esta em uso´);
exit;
end;


Qualquer duvida estamos aqui.


Responder

12/08/2004

Everton Tom

opa!! amigo achei muito boa sua citação mais tenhu uma duvida!! veja esta parte q vc escreveu:

No botão Novo(ou incluir) você apenas prepara a tela para a inclusão dos dados. Ao invés de já disparar um Table.Append (ou Insert).

como assim? e se eu tiver usando DBNavigator????


olá programador boa tarde. Você pode fazer desta forma: No botão Novo(ou incluir) você apenas prepara a tela para a inclusão dos dados. Ao invés de já disparar um Table.Append (ou Insert). Ai no evento OnExit de um TEdit(ou TMaskEdit) você usa o seguinte Table1.IndexFiledName := nome_do_campo; if not (Table1.FindKey(edit1.text)) then Table1.Append else begin ShowMessage(´Este nome já esta em uso´); exit; end; Qualquer duvida estamos aqui.
[b:7b003e2b6f][/b:7b003e2b6f]


Responder

12/08/2004

Macario

neste caso voce teria que ter os campos como chave primaria, para quando desse um Table.Post o proprio banco nao aceitaria o nome

Tente não usar muito os componentes DataWare, pois como voce vê
eles não sao muito flexiveis.


Responder

27/05/2005

Anjinho Loiro

Como fazer para localizar dentro de uma Table, um registro que terá seu código digitado num edit.
Aliás, são dois tipos de localização:

Código = Procura exatamente o que for digitado.
Nome = Procura por parciais do nome do cliente.

Os códigos serão colocados no evento OnClick de botoões dentro do formulário e os dados a serem localizados serão digitados dentro de edits.

Se puder me mandar um exemplo, ficarei muito agradecida.


polisuporte@hotmail.com

Bjs...


Responder

27/05/2005

Anjinho Loiro

Como fazer para localizar dentro de uma Table, um registro que terá seu código digitado num edit.
Aliás, são dois tipos de localização:

Código = Procura exatamente o que for digitado.
Nome = Procura por parciais do nome do cliente.

Os códigos serão colocados no evento OnClick de botoões dentro do formulário e os dados a serem localizados serão digitados dentro de edits.

Se puder me mandar um exemplo, ficarei muito agradecida.


polisuporte@hotmail.com

Bjs...


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar