PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Como consultar em query como subitem do listview? Em Delphi? #606738

25/11/2019

0

Olá bom dia a todos, estou aqui com mais uma dúvida aos amigos.
Preciso realizar uma consulta de itens inserido no listview, são músicas que estarão neste listview e preciso cadastrar fazendo loop, mas está dando erro na função.
Eu consigo fazer a busca usando a caption, mas o subitem me mostra erro, abaixo o código, agradeceria que me mostrassem o erro.

procedure TfrmImportar.BTNImportarClick(Sender: TObject);
var
    x: integer;
begin

   //verifica se tem algo no listview
   if listView1.Items.Count = 0 then
      begin
         Application.MessageBox(''Não existe arquivo para importar!!'',
                                ''Atenção'', MB_ICONSTOP+MB_OK);
         exit;
      End;

   //realiza o valor do gauge
   pbImportar.Properties.Min:=0;
   pbImportar.Properties.Max:=ListView1.Items.Count;
   pbImportar.Position:=0;

   //executa a importação direta para o banco de dados
  if Application.MessageBox(''Confirma a importação dos áudios selecionados?''+#13+
                            ''Os arquivos de mesmo nome, serão atualizados!!'',
                            ''Confirme'', MB_ICONQUESTION+4)= idYes then
     begin
        try
           Screen.Cursor := crHourGlass;
           for x:=0 to listView1.Items.Count-1 do
        begin
           if (listView1.Items.Count > 0) then
              begin
                 // verifica se tem artísta cadastrado.
                 qrArtista.Close;
                 qrArtista.SQL.Clear;
                 qrArtista.SQL.Add(''select * from tbartista'');
                 qrartista.SQL.Add(''where tbArtista.artista_nome = '''''' + ListView1.Items[x].SubItems + '''''''');
                 qrartista.Open;
                 if qrArtista.IsEmpty then
                    begin
                    qrArtistaIns.Insert;
                    qrArtistaInsArtista_nome.AsString:= ListView1.Items[x].SubItems;
                    qrArtistaIns.Post;
                    qrArtistaIns.ApplyUpdates;
                    end;
                 qrmusica.Close;
                 qrmusica.SQL.Clear;
                 qrmusica.SQL.Add(''select * from tbmusica'');
                 qrmusica.SQL.Add(''where tbmusica.musica_nome = '''''' + ListView1.Items[x].Caption + '''''''');
                 qrmusica.Open;
                 if qrmusica.IsEmpty then
                    begin
                      lbMensagem.Caption := ListView1.Items[x].Caption;
                      qrMusicaIns.insert;
                      qrMusicaInsMusica_nome.AsString:=ListView1.Items[x].Caption;
                      qrMusicaInsMusica_idnacionalidade.AsInteger:=edt_nacionalidade.EditValue;
                      qrMusicaInsMusica_idgenero.AsInteger:=edt_genero.EditValue;
                      qrMusicaInsMusica_idritmo.AsInteger:=edt_ritmo.EditValue;
                      qrMusicaInsMusica_idartista.AsInteger:=qrArtistaInsArtista_id.AsInteger;
                      qrMusicaIns.post;
                      pbImportar.Position := pbImportar.Position + 1;
                      Application.ProcessMessages;
                    end;
                    QRMusica.Close;
             end;
      end;
   finally
      Screen.Cursor := crDefault;
      Application.MessageBox(''Importação realizada com sucesso!!'',
                             ''Atenção'', MB_ICONWARNING+MB_OK);
           BTNCancelar.Click;
           ListView1.Clear;
           pbImportar.Position:=0;
           lbMensagem.Caption := ''Aguardando processo de importação'';
        end;
   end
else
   begin
      ListView1.Clear;
      pbImportar.Position:=0;
   end;
end;



Como podem ver acima está o código completo da procedure importar, e abaixo só as consultas, na parte do caption funciona perfeitamente, mas não no subitem, poderiam me mostrar o erro por favor?
Obrigado a todos.

                 
       qrartista.SQL.Add(''where tbArtista.artista_nome = '''''' + ListView1.Items[x].SubItems + '''''''');
                 qrartista.Open;
                 if qrArtista.IsEmpty then
                    begin
                    qrArtistaIns.Insert;
                    qrArtistaInsArtista_nome.AsString:= ListView1.Items[x].SubItems;
                    qrArtistaIns.Post;
                    qrArtistaIns.ApplyUpdates;
                    end;


                 qrmusica.Close;
                 qrmusica.SQL.Clear;
                 qrmusica.SQL.Add(''select * from tbmusica'');
                 qrmusica.SQL.Add(''where tbmusica.musica_nome = '''''' + ListView1.Items[x].Caption + '''''''');
                 qrmusica.Open;
                 if qrmusica.IsEmpty then
Júnior Pinheiro

Júnior Pinheiro

Responder

Posts

27/11/2019

Júnior Pinheiro

PROBLEMA RESOLVIDO
Colocando text a frente do subitem

qrartista.SQL.Add(''where tbArtista.artista_nome = '''''' + ListView1.Items[x].SubItems.text


A quem possa interessar.
Obrigado.



Olá bom dia a todos, estou aqui com mais uma dúvida aos amigos.
Preciso realizar uma consulta de itens inserido no listview, são músicas que estarão neste listview e preciso cadastrar fazendo loop, mas está dando erro na função.
Eu consigo fazer a busca usando a caption, mas o subitem me mostra erro, abaixo o código, agradeceria que me mostrassem o erro.

procedure TfrmImportar.BTNImportarClick(Sender: TObject);
var
    x: integer;
begin

   //verifica se tem algo no listview
   if listView1.Items.Count = 0 then
      begin
         Application.MessageBox(''Não existe arquivo para importar!!'',
                                ''Atenção'', MB_ICONSTOP+MB_OK);
         exit;
      End;

   //realiza o valor do gauge
   pbImportar.Properties.Min:=0;
   pbImportar.Properties.Max:=ListView1.Items.Count;
   pbImportar.Position:=0;

   //executa a importação direta para o banco de dados
  if Application.MessageBox(''Confirma a importação dos áudios selecionados?''+#13+
                            ''Os arquivos de mesmo nome, serão atualizados!!'',
                            ''Confirme'', MB_ICONQUESTION+4)= idYes then
     begin
        try
           Screen.Cursor := crHourGlass;
           for x:=0 to listView1.Items.Count-1 do
        begin
           if (listView1.Items.Count > 0) then
              begin
                 // verifica se tem artísta cadastrado.
                 qrArtista.Close;
                 qrArtista.SQL.Clear;
                 qrArtista.SQL.Add(''select * from tbartista'');
                 qrartista.SQL.Add(''where tbArtista.artista_nome = '''''' + ListView1.Items[x].SubItems + '''''''');
                 qrartista.Open;
                 if qrArtista.IsEmpty then
                    begin
                    qrArtistaIns.Insert;
                    qrArtistaInsArtista_nome.AsString:= ListView1.Items[x].SubItems;
                    qrArtistaIns.Post;
                    qrArtistaIns.ApplyUpdates;
                    end;
                 qrmusica.Close;
                 qrmusica.SQL.Clear;
                 qrmusica.SQL.Add(''select * from tbmusica'');
                 qrmusica.SQL.Add(''where tbmusica.musica_nome = '''''' + ListView1.Items[x].Caption + '''''''');
                 qrmusica.Open;
                 if qrmusica.IsEmpty then
                    begin
                      lbMensagem.Caption := ListView1.Items[x].Caption;
                      qrMusicaIns.insert;
                      qrMusicaInsMusica_nome.AsString:=ListView1.Items[x].Caption;
                      qrMusicaInsMusica_idnacionalidade.AsInteger:=edt_nacionalidade.EditValue;
                      qrMusicaInsMusica_idgenero.AsInteger:=edt_genero.EditValue;
                      qrMusicaInsMusica_idritmo.AsInteger:=edt_ritmo.EditValue;
                      qrMusicaInsMusica_idartista.AsInteger:=qrArtistaInsArtista_id.AsInteger;
                      qrMusicaIns.post;
                      pbImportar.Position := pbImportar.Position + 1;
                      Application.ProcessMessages;
                    end;
                    QRMusica.Close;
             end;
      end;
   finally
      Screen.Cursor := crDefault;
      Application.MessageBox(''Importação realizada com sucesso!!'',
                             ''Atenção'', MB_ICONWARNING+MB_OK);
           BTNCancelar.Click;
           ListView1.Clear;
           pbImportar.Position:=0;
           lbMensagem.Caption := ''Aguardando processo de importação'';
        end;
   end
else
   begin
      ListView1.Clear;
      pbImportar.Position:=0;
   end;
end;



Como podem ver acima está o código completo da procedure importar, e abaixo só as consultas, na parte do caption funciona perfeitamente, mas não no subitem, poderiam me mostrar o erro por favor?
Obrigado a todos.

                 
       qrartista.SQL.Add(''where tbArtista.artista_nome = '''''' + ListView1.Items[x].SubItems + '''''''');
                 qrartista.Open;
                 if qrArtista.IsEmpty then
                    begin
                    qrArtistaIns.Insert;
                    qrArtistaInsArtista_nome.AsString:= ListView1.Items[x].SubItems;
                    qrArtistaIns.Post;
                    qrArtistaIns.ApplyUpdates;
                    end;


                 qrmusica.Close;
                 qrmusica.SQL.Clear;
                 qrmusica.SQL.Add(''select * from tbmusica'');
                 qrmusica.SQL.Add(''where tbmusica.musica_nome = '''''' + ListView1.Items[x].Caption + '''''''');
                 qrmusica.Open;
                 if qrmusica.IsEmpty then
Responder

Gostei + 0

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

Aceitar