listar nome de campos da tabela

24/08/2010

0

bom dia.. estou precisando saber o nome dos campos da tabela para jogar dentro de um combobox porem somente o nome dos campos tipo idusu, nomusu mais tbn podendo tirar alguns campos que eu nao queira listar tipo senha por exemplo.
Fabio Sanches

Fabio Sanches

Responder

Posts

30/08/2010

Fabio Sanches

mais deu em todas as linhas.. :)
Responder

30/08/2010

Eriley Barbosa

Tente com Value no lugar dos AsInteger e ASString.
Responder

30/08/2010

Fabio Sanches

ele passa no debug mais da erro na hora q eu mando executar e escolho por exemplo a opção nome e digito a letra a da o erro "ADOQCadUsu: parameter 'VNomUsu' not found'
Responder

30/08/2010

Eriley Barbosa

Case CbCampos.ItemIndex of
  0 : begin          // codigo
        if cbpesquisa.ItemIndex = 0 then
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu = ' + ELocUsu.Text);
            DataModule1.ADOQCadUsu.Open;
          end
            else
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu = ' + ELocUsu.Text);
            DataModule1.ADOQCadUsu.Open;
          end;
      end;
  1 : begin            //nome
         if cbpesquisa.ItemIndex = 1 then
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where NomUsu like ' + QuotedStr(ELocUsu.Text)+'%');
            DataModule1.ADOQCadUsu.Open;
          end
            else
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where NomUsu like ' + '%'+QuotedStr(ELocUsu.Text)+'%');
            DataModule1.ADOQCadUsu.Open;
          end;
      end;
  2 : begin            //nivel
        if cbpesquisa.ItemIndex = 2 then
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where nivusu = ' + ELocUsu.Text);
            DataModule1.ADOQCadUsu.Open;
          end
            else
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where nivusu = ' + ELocUsu.Text);
            DataModule1.ADOQCadUsu.Open;
          end;
      end;
end;

Tirei os parametros, mas de uma pesquisada na internet em adicionando parametros no adoquery em tempo de execução.
Responder

30/08/2010

Eriley Barbosa

Acho que nestas duas linhas tem que ser assim: DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where NomUsu like ' + QuotedStr(ELocUsu.Text +'%'));
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where NomUsu like ' + QuotedStr('%' + ELocUsu.Text +'%'));
Responder

30/08/2010

Fabio Sanches

usando o parametro dentro do sql mesmo igual vc colocou deu erro 'sintaxe incorreta proxima a 'a''
'a' foi a letra q eu digitei no edit e ja deu erro na hora.
Responder

30/08/2010

Eriley Barbosa

 Veja um exemplo e adapte a sua necessidade: dtmArquivos.adoQyCidades.SQL.Add('select * from Cidades Where cid_Descricao Like '+ ''''+'%' + edtPesquisa.Text + '%' + '''');
Responder

31/08/2010

Fabio Sanches

deu o mesmo erro.. e nesse codigo q vc colocou qual o motivo de tantas ' aspas simples?
Responder

31/08/2010

Eriley Barbosa

Case CbCampos.ItemIndex of
  0 : begin          // codigo
        if cbpesquisa.ItemIndex = 0 then
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu = ' + ELocUsu.Text);
            DataModule1.ADOQCadUsu.Open;
          end
            else
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu = ' + ELocUsu.Text);
            DataModule1.ADOQCadUsu.Open;
          end;
      end;
  1 : begin            //nome
         if cbpesquisa.ItemIndex = 1 then
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where NomUsu like ' + QuotedStr(Trim(ELocUsu.Text)+'%'));
            DataModule1.ADOQCadUsu.Open;
          end
            else
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where NomUsu like ' + QuotedStr('%'+Trim(ELocUsu.Text)+'%'));
            DataModule1.ADOQCadUsu.Open;
          end;
      end;
  2 : begin            //nivel
        if cbpesquisa.ItemIndex = 2 then
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where nivusu = ' + ELocUsu.Text);
            DataModule1.ADOQCadUsu.Open;
          end
            else
          begin
            DataModule1.ADOQCadUsu.Close;
            DataModule1.ADOQCadUsu.SQL.Clear;
            DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where nivusu = ' + ELocUsu.Text);
            DataModule1.ADOQCadUsu.Open;
          end;
      end;
end;
Testei este código aqui e funcionou, você deve estar fazendo algo de errado na hora de testar.
Responder

31/08/2010

Fabio Sanches

acontece um erro quando eu mando limpar o campo.. tipo se eu dou um delete em um valor q eu coloquei ou backspace da o erro e para listar esse resultado dessa consulta no dbgrid como q funciona?

Responder

31/08/2010

Eriley Barbosa

Também pudera, você colocou o código em um evento do edit e não no botão como eu te falei. Para exibir o resultado da consulta ligue um datasource a sua query e um dbgrid ao datasource.
Responder

31/08/2010

Fabio Sanches

coloquei no botao funcionou show de bola.. fiz a listagem ja joguei dentro do grid.. agora essa é uma janela q eu abro atravez da janela de cadastro.. como q eu faço para poder pegar o resultado da grid na linha selecionada e dando 2 clicks ou apertando o botao OK ele leve pelo menos o ID para a tela inferior e preencha os campos la?

Responder

31/08/2010

Eriley Barbosa

Se você tem um botão no seu formulário de consulta, configure a propriedade ModalResult = mrOK do botão. No seu formulário de cadastro no botão de procura, coloque o seguinte código: if seuformulariodeconsulta.ShowModal = mrOK then begin   //Para funcionar essa linha o sql da query tem que estar select * from tabela   if SuaQuerydecadastro.Locate('ID', Seuformulariodeconsulta.FieldByName('ID').Value, []) then   begin   //joga nos edits, como fizemos no dbnavigator   end;   SeuFormulariodeConsulta.Close; end;
Responder

01/09/2010

Fabio Sanches

blz.. com essa propriedade ele digamos q assimila o OK no botao.. mais de q forma q posso passar um determinado valor como parametro para outra tela? tipo idusu por exemplo para q automaticamente quando eu pressionar o ok ele forçe uma busca na outra tela com aquele id?
Responder

01/09/2010

Eriley Barbosa

Se DataModule1.ADOQCadUsu for o mesmo componente usado para cadastro, não precisa fazer nada, apenas selecionar o registro no dbgrid que você quer exibir na tela de cadastro, jogar nos edits e fechar sua tela de consulta. if seuformulariodeconsulta.ShowModal = mrOK then
begin
   //joga nos edits, como fizemos no dbnavigator
  SeuFormulariodeConsulta.Close;
end;
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar