Localizar antes de dar o .post

Delphi

29/05/2003

Ola amigos , estou aprendendo ainda a programar em delphi e estou com uma dificuldade.

Estou fazendo um form para cadastro de itens na minha tab Itens , bom o meu campo primario eh do tipo alpha numerico e com 8 espacos , ja que nao tem autoincremento , gostaria de checar se ja existe o codigo na minha tabela (campo CodItem) antes de salvar , como faço pra localizar , to em apuros ajudem por favor

desde ja agradeço a atenção e o tempo dispendido com um noob :P

Brigadao


Bis

Bis

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

29/05/2003

Este campo de codigo deve estar indexado
coloque mais uma table (copie a que já tem ai)
e faca table2.findnearest([codigo]);
if table2.fieldbyname(´campo código´).asstring = editcodigo.text then já tem o código else não tem o código;


GOSTEI 0
Bis

Bis

29/05/2003

Oi marcelo obrigado pela ajuda , não consegui fazer funcionar , bom vamus la :

O campo CodItem do qual falei e indexado , fiz uma copia da table e nomeei como table1 coloquei no onchange do campo apenas para teste o
seguinte codigo:
editcoditem(este e o dbedit do campo)


Table1.findnearest (editcoditem.text) ;
if TblCodItem.fieldbyname(CodItem).asstring = editcoditem.text then
editcoditem.text := NumTemEsse else editcoditem.text := Digiteoutro;

o erro que ocorreu e na primeira linha e diz:
[Error] CadastroItens.pas(122): Incompatible types: ´Array´ and ´TMaskedText´

obrigado


GOSTEI 0
Bis

Bis

29/05/2003

oi amigos se alguem souber um jeito diferente ajudem ae plz , to encrencado.


:shock: :shock: :shock:


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

29/05/2003

Um detalhe:

Table1.findnearest ([color=blue:57a07e533a][b:57a07e533a][[/b:57a07e533a][/color:57a07e533a]editcoditem.text[color=blue:57a07e533a][b:57a07e533a]][/b:57a07e533a][/color:57a07e533a]) ;
if TblCodItem.fieldbyname(CodItem).asstring = editcoditem.text then
editcoditem.text := NumTemEsse else editcoditem.text := Digiteoutro;


GOSTEI 0
Bis

Bis

29/05/2003

Ei marcelo coloquei o seguinte codigo e qdo executei e chamei o codigo deu o erro do .exe [b:84db4df8b9]EstackOverflow with message stack overflow[/b:84db4df8b9] o codigo que coloquei foi :

TblCodItem.Cancel;
TblCodItem.findnearest ([editcoditem.text]) ;
if TblCodItem.fieldbyname(´CodItem´).asstring = editcoditem.text then
editcoditem.text := ´NumTemEsse´ else editcoditem.text := ´Digiteoutro´;


Agradeço muito sua ajuda , me da uma mão ae plz


GOSTEI 0
Bis

Bis

29/05/2003

up pra alguma alma caridosa me ajudar por favor :D


GOSTEI 0
POSTAR