Fórum Como evitar erro da importação de um listbox para tabela? #347026
04/10/2007
0
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. :D
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. :D
Junior-programador
Curtir tópico
+ 0
Responder
Posts
05/10/2007
Junior-programador
ola amigos, problema resolvido, segue abaixo o codigo para apreciação de todos.
procedure Tfbuscar.btnconfirmarClick(Sender: TObject);
var
x: integer;
begin
for 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;
procedure Tfbuscar.btnconfirmarClick(Sender: TObject);
var
x: integer;
begin
for 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;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)