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.
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.
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
Curtir tópico
+ 0
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.
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.
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.
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
Clique aqui para fazer login e interagir na Comunidade :)