Grrrr.... Alguem ae me ajuda

Delphi

13/02/2003

Ae galera. to com um probleminha no Table1.setKey

Table1.setKey;
Table1.fieldByName(´descricao´).asString := edit1.text;
if table1.gotoKey then showmessage(´achou´);

Isso teria que dar certo, só que ele fala que o Table1 nao ta em Edit ou Insert mode...

Porque ??


Nildo

Nildo

Curtidas 0

Respostas

Navoid

Navoid

13/02/2003

cara tu tais tentado mudar o conteudo de um campo
por isso ele dá a mensagem
eu num sei o que faiz o setkey e o gottokey, só sei que pra alterar o valor de um campo vc tem que estar inserindo ou editando um registro.

até


GOSTEI 0
Mecq_clayton

Mecq_clayton

13/02/2003

Well não sei bem se ajuda mas tente subustituir a linha abaixo:

Table1.setKey;

por:

Table1.EditKey;

Por favor poste no forúm caso funcione.


GOSTEI 0
Nildo

Nildo

13/02/2003

o SetKey dubstitue o Edit ou Insert.

O SetKey abilita o modo pesquisa no TTable.
Conforme voce atribue o FieldByname como um valor, ele pesquisa de acordo com o valor que voce atribuiu no FieldByname.

o GotoKey retorna true se posiciona no registro correspondente ao da pesquisa.
o GotoNearest vai para o mais próximo do registro.

Concluindo, eu nao to tentando mudar o conteudo. Isto faz parte da pesquisa.

Da um F1 em cima da palavra setKey no delphi e veja no Exemplo!


GOSTEI 0
Nildo

Nildo

13/02/2003

mac_kleyiton...

deu o mesmo erro na hora da atribuicao de valores


GOSTEI 0
Mecq_clayton

Mecq_clayton

13/02/2003

Well BINGO tenta ai:

Table1.EditKey;
Table1.setKey;
Table1.fieldByName(´Name´).asString := edit1.text;
if table1.gotoKey then
begin
showmessage(´achou´);
end;

Poste no forúm os resultados.


GOSTEI 0
Mecq_clayton

Mecq_clayton

13/02/2003

Well ai funcionou?


GOSTEI 0
Nildo

Nildo

13/02/2003

Mesmo erro. Ele da o mesmo erro na hora da atribuição


GOSTEI 0
Rosset

Rosset

13/02/2003

Table1.IndexFieldNames:=´Codigo´; //indexa a table pelo campo codigo
Table1.SetKey; //coloca em modo de pesquisa
if FindKey([eCodigo.text]) then
begin
eCodigo.text:= Table1.FieldByName(´Codigo´).AsString;

e assim por diante !!!


GOSTEI 0
Nildo

Nildo

13/02/2003

Valew rosset. vou testar...

Mas e se eu quiser procurar o campo que o ´codigo´ for eCodigo.text e a ´descricao´ for eDescricao.text ?


GOSTEI 0
Anonymous

Anonymous

13/02/2003

Table1.IndexFieldNames:=´Codigo´; //indexa a table pelo campo codigo
Table1.SetKey; //coloca em modo de pesquisa
if FindKey([eCodigo.text]) then
begin
eDescricao.text:= Table1.FieldByName(´Descricao´).AsString;

e assim por diante !!!

ISSO??


GOSTEI 0
Nildo

Nildo

13/02/2003

Queria procurar o registro que o campo DESCRICAO for ´Teste´ e que o campo NOME for ´Nome do produto´


GOSTEI 0
Anonymous

Anonymous

13/02/2003

Table1.IndexFieldNames:=´NomeDoProduto´; //indexa a table pelo campo codigo
Table1.SetKey; //coloca em modo de pesquisa
if Table1.FindKey([eProduto.text]) then
if Table1.Locate(eDescricao.text,Table1.FieldByName´Descricao´).AsString;
begin
eDescricao.text:= Table1.FieldByName(´Descricao´).AsString;
//outras linhas
end;

SÓ NÃO SEI SE A LINHA DO LOCATE É BEM ASSIM MAS É +- ASIMM..


e assim por diante !!!

ISSO??


GOSTEI 0
Mecq_clayton

Mecq_clayton

13/02/2003

Ué eu fiz um exemplo aqui e funcionou com as linha que eu te mandei!!!!


GOSTEI 0
Nildo

Nildo

13/02/2003

meq_cleyiton, eu me lembrei agora que nao estou utilizando índice hehehe
to com problemas no meu locate. da uma olhada no tópico Problemas com Locate

valew


GOSTEI 0
POSTAR