ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

preciso de ajuda com a função locate
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
gregorysouza
Novato
Novato


Registrado: Quarta-Feira, 25 de Julho de 2012
Mensagens: 46

MensagemEnviada: Qua Jul 25, 2012 3:14 pm    Assunto: preciso de ajuda com a função locate Responder com Citação

eu estou criando um banco de dados com delphi e estou tentando fazer o localizar funcionar mas a funcao locate nao estou conseguindo fazer funcionar, ela estah escrita assim
DM.SimpleDataSetempresa.Locate('NOMEDAEMPRESA',VarArrayOf([Edit1.Text]),[lopartialkey]);

ai o lopartialkey nao estah encontrando.. eu escrevi alguma coisa errada aqui nesta sintese vlw pela ajuda
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Jul 25, 2012 3:27 pm    Assunto: Responder com Citação

Boa tarde,

Não entendi muito bem a sua questão...
Está ocorrendo algum erro de compilação?
Ou quando você executa não está encontrando nada? Se for este caso, experimente desta forma:

Código:
DM.SimpleDataSetempresa.Locate('NOMEDAEMPRESA', VarArrayOf([Edit1.Text]), [loCaseInsensitive, loPartialKey]);


Espero que ajude.


Editado pela última vez por imex em Ter Out 03, 2023 5:37 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gregorysouza
Novato
Novato


Registrado: Quarta-Feira, 25 de Julho de 2012
Mensagens: 46

MensagemEnviada: Qua Jul 25, 2012 3:33 pm    Assunto: Responder com Citação

entao sabe quando aperta o ctrl + espaço e nem aparece o locase ou o lopartial dai estah dando erro na hora de compilar estah falando alguma biblioteca?? :S
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Jul 25, 2012 3:51 pm    Assunto: Responder com Citação

Verifique se as units DB e DBClient estão na clausula uses do seu form ou unit, e se não estiver, experimente adiciona-las.

Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gregorysouza
Novato
Novato


Registrado: Quarta-Feira, 25 de Julho de 2012
Mensagens: 46

MensagemEnviada: Qua Jul 25, 2012 4:04 pm    Assunto: Responder com Citação

sim elas estao sim uses Principal, UDM;
estah mto estranho isto daqui =s
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gregorysouza
Novato
Novato


Registrado: Quarta-Feira, 25 de Julho de 2012
Mensagens: 46

MensagemEnviada: Qua Jul 25, 2012 4:11 pm    Assunto: Responder com Citação

opa consegui vlw... era soh colocar o db msmo eu estava confundido q tinha q colocar o dm o data module nao o db.. oq seria este db uma biblioteca??? eu sou novo estou começando sozinho
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Jul 25, 2012 4:39 pm    Assunto: Responder com Citação

Sim, onde estão declaradas diversas classes, funções, tipos, sets e etc, entre os quais está TLocateOption, que define os valores aceitos para o parâmetro Options do método Locate.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gregorysouza
Novato
Novato


Registrado: Quarta-Feira, 25 de Julho de 2012
Mensagens: 46

MensagemEnviada: Qui Jul 26, 2012 1:34 pm    Assunto: Responder com Citação

outra duvida.. estou tentando usar o locate mas quando o campo eh inteiro eu nao estou conseguindo... estah dando erro estou usando assim como eu deveria usar??

dm.SimpleDataSetmedicao.Locate('numerodaobra',VarArrayOf([Edit1.Text]),[loPartialKey,loCaseInsensitive])
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Jul 26, 2012 4:02 pm    Assunto: Responder com Citação

Qual mensagem de erro está sendo exibida?
Experimente utilizar a função StrToInt para converter o valor do edit para inteiro para ver o que acontece:

Código:
dm.SimpleDataSetmedicao.Locate('numerodaobra', VarArrayOf([StrToInt(Edit1.Text)]), [loPartialKey, loCaseInsensitive]);


Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Qui Jul 26, 2012 5:44 pm    Assunto: Responder com Citação

pra q serve o VarArrayOf?

ah sim!

pra fazer um variant apartir de um array.
mas se vc vai e passa um array de um elemento, pq decidiu tratá-lo como array? e não como elemento?

poderia ser assim:

Código:
dm.SimpleDataSetmedicao.Locate('numerodaobra', StrToInt(Edit1.Text), [loPartialKey, loCaseInsensitive]);



pera ai!
pq loCaseInsensitive? se StrToInt(Edit1.Text) é um integer?

vamos tentar novamente!
o campo numerodaobra é caracteres?

tente assim:
Código:
dm.SimpleDataSetmedicao.Locate('numerodaobra', Edit1.Text, [loPartialKey, loCaseInsensitive]);
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gregorysouza
Novato
Novato


Registrado: Quarta-Feira, 25 de Julho de 2012
Mensagens: 46

MensagemEnviada: Qui Jul 26, 2012 7:03 pm    Assunto: Responder com Citação

nao o campo numerodaobra eh inteiro... tipo eu defini no sql como integer e é por isso q estah dando erro.. nos campos q estah como vararray funciona certinho... agora os q estah int estah dando erro ai nao consigu pesquisar lah =s
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gregorysouza
Novato
Novato


Registrado: Quarta-Feira, 25 de Julho de 2012
Mensagens: 46

MensagemEnviada: Qui Jul 26, 2012 7:31 pm    Assunto: Responder com Citação

opa acho q conseguir tirando o vararray e colocando a propriedade strtointdef(edit1.text,0) soh q agora eu queria mais uma ajuda... como eh q eu faço para quando ele pesquisa na tabela ele coloca em ordem alfabetica tem como??
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Jul 26, 2012 10:52 pm    Assunto: Responder com Citação

Experimente preencher a propriedade IndexFieldNames do seu SimpleDataSet com o nome do campo pelo qual você deseja ordenar.
Se for ordenar por mais de um campo utilize um ponto e vírgula entre os nomes dos campos.

Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gregorysouza
Novato
Novato


Registrado: Quarta-Feira, 25 de Julho de 2012
Mensagens: 46

MensagemEnviada: Seg Jul 30, 2012 10:58 pm    Assunto: Responder com Citação

entao eu queria filtar... deixar soh os campos que tem a palavra chave q eu estou pesquisando... tem como fazer isso??
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Seg Jul 30, 2012 11:26 pm    Assunto: Responder com Citação

Acho que a primeira opção seria utilizar filtros na instrução SQL para tentar diminuir o trafego de dados entre o banco de dados e a aplicação.

Se for para filtrar no DataSet, experimente utilizar a propriedade Filter (ex para obter os registros em que o início do nome seja igual ao conteúdo do Edit):

Código:
SimpleDataSet1.Filtered := false;
SimpleDataSet1.Filter   := 'Nome like ' + QuotedStr(EditFiltro.Text + '%');
SimpleDataSet1.Filtered := true;


Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB