Fórum Problema de Inserção de registro com CheckListBox ADO #224721
07/04/2004
0
Estou utilizando o checklistbox para selecionar a disciplina na tabela tbl_comp_curric
e inserir o código da disciplina(s) selecionada(s) na tabela tbl_prova no campo cod_comp_curric (FK)
atraves de um array (CompCurric).
Segue o código que estou usando.
procedure TForm1.Button1Click(Sender: TObject);
Var
CompCurric: array[1..4] of String[20];
x, j: integer;
begin
with ADOQuery1 do begin
close;
with sql do begin
clear;
add(´select * from tbl_comp_curric where ´);
for x:=0 to CheckListBox2.Items.Count-1 do
begin
if CheckListBox2.Checked[x] then
begin
if CheckListBox2.Checked[1] then //Apenas um checklistbox marcado
add(´nome_comp_curric = ´+(quotedstr(CheckListBox2.items.strings[x])))
compcurric[x] := ADOTblCompCurriccod_comp_curric.AsInteger;
else
//Mais de um checklistbox marcado
add(´nome_comp_curric = ´+(quotedstr(CheckListBox2.items.strings[x])));
compcurric[x] := ADOTblCompCurriccod_comp_curric.AsInteger;
add(´ or ´);
end;
end;
delete(sql.count-1);
open;
end;
end;
for j:=1 to 4 do
begin
ADOTblProva.append;
ADOTblProvacod_comp_curric.AsInteger := StrToInt(CompCurric[j]);
adotblprova.Post;
end;
end;
Só que dá sempre um erro na clausula WHERE qdo seleciono um item no CheckListBox,
ou qdo seleciona mais de um item não consegue inserir no campo
ADOTblProvacod_comp_curric.AsInteger;
e inserir o código da disciplina(s) selecionada(s) na tabela tbl_prova no campo cod_comp_curric (FK)
atraves de um array (CompCurric).
Segue o código que estou usando.
procedure TForm1.Button1Click(Sender: TObject);
Var
CompCurric: array[1..4] of String[20];
x, j: integer;
begin
with ADOQuery1 do begin
close;
with sql do begin
clear;
add(´select * from tbl_comp_curric where ´);
for x:=0 to CheckListBox2.Items.Count-1 do
begin
if CheckListBox2.Checked[x] then
begin
if CheckListBox2.Checked[1] then //Apenas um checklistbox marcado
add(´nome_comp_curric = ´+(quotedstr(CheckListBox2.items.strings[x])))
compcurric[x] := ADOTblCompCurriccod_comp_curric.AsInteger;
else
//Mais de um checklistbox marcado
add(´nome_comp_curric = ´+(quotedstr(CheckListBox2.items.strings[x])));
compcurric[x] := ADOTblCompCurriccod_comp_curric.AsInteger;
add(´ or ´);
end;
end;
delete(sql.count-1);
open;
end;
end;
for j:=1 to 4 do
begin
ADOTblProva.append;
ADOTblProvacod_comp_curric.AsInteger := StrToInt(CompCurric[j]);
adotblprova.Post;
end;
end;
Só que dá sempre um erro na clausula WHERE qdo seleciono um item no CheckListBox,
ou qdo seleciona mais de um item não consegue inserir no campo
ADOTblProvacod_comp_curric.AsInteger;
Chucky21
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)