Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Júnior Programador

[Resolvido] Como evitar erro da importação de um listbox para tab

Recommended Posts

Olá amigos, para aprimorar o sistema venho novamente aqui, a poucos um amigo me ajudou a resolver o problema de gravar conteúdo de um listbox para uma tabela, funcionando perfeitamente, agora surgiu um problema O conteúdo deste listbox sera o que eu pegar de dentro de uma pasta do windows, por exemplo musicas nacionais, quando eu mando gravar o que ta no listbox, o sistema salva a lista inteira na tabela, até ai perfeito. o problema é que quando eu entro em uma pasta exemplo mpb, e la tem uma musica com o mesmo nome, da erro de violação pq o nome ja existe, no mysql, se eu tirar a opcao unique, ele grava o mesmo nome, mas em outro codigo, ai teria dois nomes iguais na tabela, entao, como faço para salvar por cima do que esta gravado se tiver o mesmo nome, ou como faço para ele ignorar quando ele achar uma musica repetida e continuar a gravar o resto, abaixo segue o codigo de como esta. estou usando componente zeos, query e sgdb mysql. procedure TFImportar.btnimportarClick(Sender: TObject); var x: integer; begin for x:=0 to listbox1.Items.Count-1 do begin if (listbox1.Selected[x]) then begin tbmusica.insert; tbMusicaDescricao.asstring:=listbox1.Items.strings[x]; tbMusica.post; end; end; end; aguardo a ajuda dos amigos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

holla você é um programador ? bom me adcionar japao_13@hotmail.com ou deixa seu msn ai eu procuro um programador não precisa ser muito bom

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz um validação antes, fazendo um SQL sobre a tabela e validando, algo como:

 

SELECT *
FROM tabela
WHERE tabela.descricao = 'NOME_DA_MUSICA'

 

Ficando:

 

procedure TFImportar.btnimportarClick(Sender: TObject);var	x: integer;beginfor x:=0 to listbox1.Items.Count-1 do	begin	if (listbox1.Selected[x]) then 		begin		qry.Close;		qry.SQL.Clear;		qry.SQL.Add('select *');		qry.SQL.Add('from musica');		qry.SQL.Add('where musica.descricao = ''' + listbox1.Items.strings[x] + '''');		qry.Open;		if qry.IsEmpty then			begin			tbmusica.insert;			tbMusicaDescricao.asstring:=listbox1.Items.strings[x];			tbMusica.post;			end;		qry.Close;		end;	end;end;

Ou seja, vai verificar se a música já existe, caso não tenha, vai inserir...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola amigo obrigado pela ajuda, funcionou perfeitamente, segue abaixo o codigo de como está.PROBLEMA RESOLVIDOprocedure Tfbuscar.btnconfirmarClick(Sender: TObject);var x: integer;beginfor x:=0 to listbox1.Items.Count-1 do begin if (listbox1.Selected[x]) then begin qrmusica.Close; qrmusica.SQL.Clear; qrmusica.SQL.Add('select *'); qrmusica.SQL.Add('from tbmusica'); qrmusica.SQL.Add('where tbmusica.descricao = ''' + listbox1.Items.strings[x] + ''''); qrmusica.Open; if qrmusica.IsEmpty then begin fprincipal.tbmusica.insert; fprincipal.tbmusicaDescricao.asstring:=listbox1.Items.strings[x]; fprincipal.tbMusica.post; end; qrmusica.Close; end; end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.