Q&A

  • DB질문입니다. ㅠㅠ 하나의 쿼리에 여러개의입력을했을경우..
하나의 쿼리컴포넌트에서 select, insert, delete, update 전부하려고하는데.

문제가 없을까여?

물론 각각프로시저의 시작부분에서 sql.clear는 실행을하져....

일단 소스는 이정도고요 근데 에러가 나네여 ㅠㅠ 고수님들 답변부탁드립니다.

///insert 입니다. 3개의 텍스트박스에서 받아온 스트링값을

그대로 table에 넣는것이지요...///

procedure TForm1.Button1Click(Sender: TObject);

begin

with Query do

begin

sql.Clear;



sql.Add('insert into jowonjun(st_name, st_addr, st_tel)values(');





sql.Add(''''+Edit2.text+''',');

sql.Add(''''+Edit3.Text+''',');

sql.Add(''''+Edit4.Text+'''');





sql.Add(')');

Execsql;

end;

Query.Refresh;

Edit2.Clear;

Edit3.Clear;

Edit4.Clear;

Edit2.SetFocus;

end;

///delete부분입니다. 에디트박스에서 받아온 부분에서 매치되는 st_seq을 아예

없애는것이지요///

procedure TForm1.Button3Click(Sender: TObject);

begin

with Query do

begin

sql.Clear;



sql.Add('delete from jowonjun');



sql.Add('where st_seq = '''+Edit1.Text+'''');

///*요기쯤에서 에러가 나는듯....*///

sql.Add(')');

Execsql;

end;



Query.Refresh;

Edit1.Clear;

end;



참고로 table 컬럼들은 이렇습니다.



st_seq serial primary key;

st_name varchar(15);

st_addr varchar(50);

st_tel char(15);

빠른 답변부탁드립니다.꿉뻑~~



2  COMMENTS
  • Profile
    cell 2001.05.26 20:19
    하나의 컴퍼넌트로 코딩을 해도 상관없습니다.

    소스상에는 큰 문제는 없는듯 싶은데...

    sql.clear를 하기전에 먼저 sql.close를 하고 나서 clear를 하시죠.



    참고로 전 30 -40본되는 프로그램을 query컴퍼넌트를 메인에 하나 올려놓고

    하나로만 사용했었던 적이 있는데 컴퍼넌트가 하나여서 생긴 문제는 아닌거 같네요.

  • Profile
    지워니 2001.05.26 20:16
    aparadin wrote:

    > 하나의 쿼리컴포넌트에서 select, insert, delete, update 전부하려고하는데.

    > 문제가 없을까여?

    > 물론 각각프로시저의 시작부분에서 sql.clear는 실행을하져....

    > 일단 소스는 이정도고요 근데 에러가 나네여 ㅠㅠ 고수님들 답변부탁드립니다.

    > ///insert 입니다. 3개의 텍스트박스에서 받아온 스트링값을

    > 그대로 table에 넣는것이지요...///

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > with Query do

    > begin

    > sql.Clear;

    >

    > sql.Add('insert into jowonjun(st_name, st_addr, st_tel)values(');

    >

    >

    > sql.Add(''''+Edit2.text+''',');

    > sql.Add(''''+Edit3.Text+''',');

    > sql.Add(''''+Edit4.Text+'''');

    >

    >

    > sql.Add(')');

    > Execsql;

    > end;

    > Query.Refresh;

    > Edit2.Clear;

    > Edit3.Clear;

    > Edit4.Clear;

    > Edit2.SetFocus;

    > end;

    > ///delete부분입니다. 에디트박스에서 받아온 부분에서 매치되는 st_seq을 아예

    > 없애는것이지요///

    > procedure TForm1.Button3Click(Sender: TObject);

    > begin

    > with Query do

    > begin

    > sql.Clear;

    >

    > sql.Add('delete from jowonjun');

    >

    > sql.Add('where st_seq = '''+Edit1.Text+'''');

    > ///*요기쯤에서 에러가 나는듯....*///

    > sql.Add(')');

    > Execsql;

    > end;

    >

    > Query.Refresh;

    > Edit1.Clear;

    > end;

    >

    > 참고로 table 컬럼들은 이렇습니다.

    >

    > st_seq serial primary key;

    > st_name varchar(15);

    > st_addr varchar(50);

    > st_tel char(15);

    > 빠른 답변부탁드립니다.꿉뻑~~

    >



    하나의 쿼리로 여러번 하는 것은 가능하구요..

    제가 볼땐 에러가 나는게..

    SQL.Clear; 하시기 전에 Close; 해 주면 괜찮을꺼 같아요. 그럼 즐코하세요