Q&A

  • 삭제문 다시 한번 부탁드립니다.
답변해 주신 김하늘님의 코딩을 참조로 하여 다음과 같은 쿼리문을 작성하였습니다.

근데 이게 자꾸 에러가 나네요. 왜 그럴까요?

다시 한번 저의 코딩을 보아 주시고 바로 잡아 주시면 감사 하겠습니다.

꼭 부탁 드립니다. 다른 고수분들도 참여 하여 주시면 감사 하겠습니다.



저의 코딩 문입니다.

rocedure TInPut.DeleteBtnClick(Sender: TObject);

begin



with query_del do

begin

close;

sql.clear;

sql.add('select * from inqtable');

sql.add('where noedit = :P_noedit');

end;

query_del.Prepare;

query_del.ParamByName('P_noedit').asstring := trim(NoEdit.Text);

query_del.open;

if query_del.bof and query_del.eof then

begin

showmessage('삭제할 자료가 없습니다!')

end

else begin

messageDlg(query_del.FieldByname('noedit').AsString +

'를 삭제하시겠습니까?',mtwarning,[mbyes, mbno], 0); then

execsql;

end;

1  COMMENTS
  • Profile
    cell 2000.10.18 00:15
    delpo wrote:

    > 답변해 주신 김하늘님의 코딩을 참조로 하여 다음과 같은 쿼리문을 작성하였습니다.

    > 근데 이게 자꾸 에러가 나네요. 왜 그럴까요?

    > 다시 한번 저의 코딩을 보아 주시고 바로 잡아 주시면 감사 하겠습니다.

    > 꼭 부탁 드립니다. 다른 고수분들도 참여 하여 주시면 감사 하겠습니다.

    >

    > 저의 코딩 문입니다.

    > rocedure TInPut.DeleteBtnClick(Sender: TObject);

    > begin

    >

    > with query_del do

    > begin

    > close;

    > sql.clear;

    > sql.add('select * from inqtable');

    > sql.add('where noedit = :P_noedit');

    > end;

    > query_del.Prepare;

    > query_del.ParamByName('P_noedit').asstring := trim(NoEdit.Text);

    > query_del.open;

    > if query_del.bof and query_del.eof then

    > begin

    > showmessage('삭제할 자료가 없습니다!')

    > end

    > else begin

    > messageDlg(query_del.FieldByname('noedit').AsString +

    > '를 삭제하시겠습니까?',mtwarning,[mbyes, mbno], 0); then

    =========================

    > execsql; ---> 이부분에 문제가 있네요. 이걸 없애야죠.

    ===========================

    > end;



    만약 삭제를 하고 싶다면 messagedlg의 값을 받아 mbYes인지 체크해서

    다시 삭제하는 SQL를 보내야 합니다.

    위의 경우는 삭제하는 것이 아니고 조회를 한후 삭제하겠다는 메시지 출력후에

    아무 버튼이나 클릭하면 execsql를 실행합니다. 하지만 쿼리는 아직 select문이

    므로 Open을 해야 되는데 execsql명령을 하니까 에러가 발생하지요.