마이다스에서 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;
> 마이다스에서 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;
참고가 되셨으면 합니다.
제가 더 복잡하게 만든건 아닌지 걱정이 앞서는군요.