ADO 테스트중인데요...
폼에 ADOconnect과 무엇을 써서 연결해야
insert나 update같은 SQL문을 잘 쓸 수 있을지...
그리고 그 결과를 스트링그리드에 보여줄라구 하는데요.....
이게 맞는지 함 봐주세요..
ADOquery를 썼을 경우예요..
procedure TQuerytest.Button1Click(Sender: TObject);
var
i: integer;
begin
count := 1;
count := count+1;
for i:=1 to count-1 do
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Insert Into joins');
SQL.Add('(j_i, j_n, j_d, j_e, j_p, j_t, j_c, j_m)');
SQL.Add('Values');
SQL.Add('( :pi, :pn, :pd, :pe, :pp, :pt, :pc, :pm)');
Parameters.ParamValues['pi'] := Trim(Edit1.Text);
Parameters.ParamValues['pn'] := Trim(Edit2.Text);
Parameters.ParamValues['pd'] := Trim(Edit3.Text);
Parameters.ParamValues['pe'] := Trim(Edit4.Text);
Parameters.ParamValues['pp'] := Trim(Edit5.Text);
Parameters.ParamValues['pt'] := Trim(Edit6.Text);
Parameters.ParamValues['pc'] := Trim(Edit7.Text);
Parameters.ParamValues['pm'] := Trim(Edit8.Text);
execute;
end
StringGrid.Cells[0,i] := Fieldbyname('j_i');
..
..
..
..
..
end;
이런 식이거든요...
근데 잘 안되여...
왕초보라 ....
좀 봐주시구 답변 좀 해주세요....
일단 지금 코드에서 실행하는 SQL문은 insert 문이니까 결과값이 없습니다.
따라서 ADOQuery1.Execute를 실행하면 잘 되리라 믿지만, 밑에서 FieldByName을 이용해서 값을 참조할 때 에러가 나겠지요.
Insert문은 결과값이 없으니깐 FieldbyName을 참조할 껀덕지가 없다는 거지요.
(delete, update도 마찬가지입니다.)
따라서 루프를 돌면서 Insert가 된다면 (DB를 직접 체크해 보세요), 그 후에,
SELECT j_i, j_n .... from joins where ... 이런식으로 보여주고 싶은 것을 다시 불러와야 합니다.
물론, Stringgrid 에다가 Insert 문에 쓰인 Parameter 값이나 또는 Edit.text 값들을 보여 줄 수도 있지만, 이건 DB 내용을 보여주는 것이 아니라 좀 어색하죠.
즉,
1. Insert 문을 실행한다
2. 에러 없이 성공하면 Select 문을 실행한다.
이러한 논리적 흐름이 있어야 합니다.
Insert 할때에는 ADOCommand를 사용하는 것이 일반적이고(ADOQuery1 을 이용해도 됩니다),Select는 물론 ADOQuery를 이용해야 겠지요. (실행시킬 때에는 ADOQuery1.Open을 해야하고요)
델초보 wrote:
> ADO 테스트중인데요...
> 폼에 ADOconnect과 무엇을 써서 연결해야
> insert나 update같은 SQL문을 잘 쓸 수 있을지...
> 그리고 그 결과를 스트링그리드에 보여줄라구 하는데요.....
> 이게 맞는지 함 봐주세요..
>
> ADOquery를 썼을 경우예요..
>
> procedure TQuerytest.Button1Click(Sender: TObject);
> var
> i: integer;
> begin
> count := 1;
> count := count+1;
> for i:=1 to count-1 do
>
> with ADOQuery1 do
> begin
> close;
> SQL.Clear;
> SQL.Add('Insert Into joins');
> SQL.Add('(j_i, j_n, j_d, j_e, j_p, j_t, j_c, j_m)');
> SQL.Add('Values');
> SQL.Add('( :pi, :pn, :pd, :pe, :pp, :pt, :pc, :pm)');
>
> Parameters.ParamValues['pi'] := Trim(Edit1.Text);
> Parameters.ParamValues['pn'] := Trim(Edit2.Text);
> Parameters.ParamValues['pd'] := Trim(Edit3.Text);
> Parameters.ParamValues['pe'] := Trim(Edit4.Text);
> Parameters.ParamValues['pp'] := Trim(Edit5.Text);
> Parameters.ParamValues['pt'] := Trim(Edit6.Text);
> Parameters.ParamValues['pc'] := Trim(Edit7.Text);
> Parameters.ParamValues['pm'] := Trim(Edit8.Text);
>
> execute;
> end
>
> StringGrid.Cells[0,i] := Fieldbyname('j_i');
> ..
> ..
> ..
> ..
> ..
> end;
>
> 이런 식이거든요...
> 근데 잘 안되여...
> 왕초보라 ....
> 좀 봐주시구 답변 좀 해주세요....
>