Q&A

  • 마이다스에서 delete....
마이다스에서 delete방법을 모르겠어요..

아래와 같이 SQL문장중에 어디가 잘못 되었는지?

고수님들 부탁드려요...



if Edit1.Text ='1' then

Qstr:='Delete from SOrder99 where ODNO=edChasu'

else

Qstr:='Delete from TTRder99 where ODNO=edChasu';



DataModule2.ClientGor.Close;

DataModule2.ClientGor.Provider.DataRequest(Qstr);

DataModule2.ClientGor.Open;

DataModule2.ClientGor.ApplyUpdates(-1);

*서버 app에는

provider DataRequest에는

Query1.SQL.close;

Query1.SQL.clear;

Query1.SQL.Text:=Input;

Query1.SQL.ExecSQl; ->추가하기도 해봤구요...

Query1.SQL.open;





1  COMMENTS
  • Profile
    황선희 2000.01.12 19:59
    김종운 wrote:

    > 마이다스에서 delete방법을 모르겠어요..

    > 아래와 같이 SQL문장중에 어디가 잘못 되었는지?

    > 고수님들 부탁드려요...

    >

    > if Edit1.Text ='1' then

    > Qstr:='Delete from SOrder99 where ODNO=edChasu'

    > else

    > Qstr:='Delete from TTRder99 where ODNO=edChasu';

    >

    > DataModule2.ClientGor.Close;

    > DataModule2.ClientGor.Provider.DataRequest(Qstr);

    > DataModule2.ClientGor.Open;

    DataModule2.ClientGor.Delete; //이 부분이 추가되어야 할 거 같습니다.

    일단 CliecntDataSet에 있는 데이타를 Delete를 하고 ClientDataSet를 하고

    ApplyUpdates(-1)을 해줘야 할 거 같습니다.

    > DataModule2.ClientGor.ApplyUpdates(-1);

    > *서버 app에는

    > provider DataRequest에는

    > Query1.SQL.close;

    > Query1.SQL.clear;

    > Query1.SQL.Text:=Input;

    > Query1.SQL.ExecSQl; ->추가하기도 해봤구요... //insert, update, delete 작업할 때는 execsql을 사용합니다. query1.sql.open을 사용하시지 않으셔도 됩니다.



    ondatarequest 이벤트는 값을 리턴하는 함수로 구성되어 있습니다. 따라서 select 구문과 같은 조회의 경우에는 사용할 수 있으나, inset, delete, update와 같은 갱신에 관한 sql문은 상용하기에는 잘 맞지가 않다고 합니다. 따라서 그런 경우에는 사용자 정의 함수를 만들어서 사용하는 것이 더 편리하다고 합니다.



    > Query1.SQL.open;

    >

    >



    제가 읽은 자료에서 ondatarequest 함수에 형식을 예를 들은 것을 보면,



    with (sender as TProvider) do begin

    // sender를 TProvide로 형 변환을 한다.

    with (Dataset as TQuery) do begin

    // TProvider의 DataSet 속성을 TQuery로 형 변환을 한다.

    Close;

    Sql.Clear;

    // 기존의 sql문을 모두 삭제한다.

    Sql.Text := input;

    // 클라이언트에서 입력한 파라미터 값을 sql문에 할당한다.

    Open;

    end;

    Result := data;

    end;



    참고가 되셨으면 합니다.

    제가 더 복잡하게 만든건 아닌지 걱정이 앞서는군요.