Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas Com Locate


Kindelis

Pergunta

é o seguinte eu já to até com dor de cabeça de tnato pensa no por que, eu tenho duas tabelas uma de abertura do caixa e uma de fechamento do caixa eu tenho que transferir alguns dados de uma tabela para a outra ai eu fiz uma função, mais o que me atrapalha é um maldito locate que não funciona:

o qr fechamento é onde estão as informa~çoes que eu quero ai eu fiz essa sql para selecionálos e mostra-los em um db grid, no caso o DBGrid3

abertura.qrfechamento.Close;

abertura.qrfechamento.SQL.Clear;

abertura.qrfechamento.SQL.Add('select P.Cod_cat, P.Qtd_disp');

abertura.qrfechamento.SQL.Add('from produtos.db as P, fechamento.db as F');

abertura.qrfechamento.SQL.Add('where F.Produto=P.Cod_cat and F.Data='+aspa+Edit3.Text+aspa+'');

abertura.qrfechamento.SQL.Add('Order By P.Cod_cat');

abertura.qrfechamento.Open;

abertura.qrfechamento.Active;

while not abertura.qrfechamento.Eof do

begin

ai tem esse proc que vai localizar produto por produto pelo codigo do mesmo para poder alterar esse campo que eu quero alterar sem interferir nos outros registros do banco de dados

proc:=abertura.DBGrid3.Fields[0].AsString; //captura o codigo do dbgrid

if (proc<>'') then

begin

abertura.tbfechamento.Locate('Cod_cat', proc, [locaseinsensitive]); //ai aqui que está o problema, quando eu executo esse codigo esse maldito "[locaseinsensitive]" que da erro, eu executo e da o seguinte erro: "Undeclared Identifier: 'locaseinsensitive'"

abertura.tbfechamento.Edit;

abertura.DBEdit3.Text:=abertura.DBGrid3.Fields[1].AsString;

abertura.tbfechamento.Post;

showmessage(proc);

abertura.qrfechamento.Next;

end;

end;

o resto do código funciona é só no locaseinsensitive que o programa para e nãop vai de jeito nenhum, alguém ai pode me dar uma idéia do que fazer pois eu preciso entregar este programa com urgencia, se alguém puder me ajudar vo ser muito grato

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Kindelis, só um comentário/sugestão sobre a linha:

proc := abertura.DBGrid3.Fields[0].AsString; //captura o codigo do dbgrid

quando você utiliza esta atribuição, o ideal seria que você utilizasse a referência ao dataset associado ao DBGrid3. Isto tornaria seu código mais claro, inclusive para futuras manutenções.

Quando você obtém Fields[0].AsString, será retornado o valor do campo que está na coluna 0 (zero) da linha selecionada. Ocorre que sempre que você se move pelo DBGrid (seleciona uma linha), o "apontador" no dataset associado ao DBGrid tam é movido. Ou seja, se você utilizar NomeDataSetNOMEdoCAMPOnaCOLUNAzero.AsString o resultado será o mesmo e o código ficará mais claro. Também não irá gerar problemas se por algum motivo você mudar o campo de posição (coluna) na tabela. Consegui explicar direito? :huh:

Notei também que você utiliza sempre o nome do NomeForm.NomeComponente..., se você está utilizando todo este processo a partir de outro form, então poderia utilizar o comando:

With NomeForm do
begin
  NomeCompoente...
  ...
end;

Isto pode tornar confuso o código - é verdade - as vezes, mas também simplifica muito;

[]s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...