-------------------[ 에러 메세지 내용 ]-----------------------
Project JD.exe raised exception class ENoResultSet with message 'Error creationg cursor handle'. Process stopped. Use Step or Run to continue.
----------------------------------------------------------------
위에는 에러메세지의 내용입니다.
아래는 소스입니다.
---------------------------------------------------
DM2.Query1.sql.clear;
DM2.Query1.SQL.Add('delete from Pro_su');
DM2.Query1.Open;
DM2.Datasource1.DataSet := DM2.query1;
Dbgrid1.DataSource := DM2.DataSource1;
DM2.Query1.Refresh;
---------------------------------------------------
위처럼 소스를 작성하면 맨위에 있는 에러 메세지가 뜹니다.
무엇이 잘못 된것인지...
커서가 잘못 되었다는것 같기도 하구요...
Pro_su라는 테이블의 데이터를 한번에 다 지우고 새로운 데이터를 입력하기 위해서 작성한건데...뜻데로 잘 안됩니다.
고수님들의 답변 부탁드리겠습니다.
즐거운 하루되세요.
> -------------------[ 에러 메세지 내용 ]-----------------------
> Project JD.exe raised exception class ENoResultSet with message 'Error creationg cursor handle'. Process stopped. Use Step or Run to continue.
> ----------------------------------------------------------------
>
> 위에는 에러메세지의 내용입니다.
> 아래는 소스입니다.
> ---------------------------------------------------
> DM2.Query1.sql.clear;
> DM2.Query1.SQL.Add('delete from Pro_su');
> DM2.Query1.Open;
> DM2.Datasource1.DataSet := DM2.query1;
> Dbgrid1.DataSource := DM2.DataSource1;
> DM2.Query1.Refresh;
> ---------------------------------------------------
>
> 위처럼 소스를 작성하면 맨위에 있는 에러 메세지가 뜹니다.
> 무엇이 잘못 된것인지...
> 커서가 잘못 되었다는것 같기도 하구요...
> Pro_su라는 테이블의 데이터를 한번에 다 지우고 새로운 데이터를 입력하기 위해서 작성한건데...뜻데로 잘 안됩니다.
> 고수님들의 답변 부탁드리겠습니다.
> 즐거운 하루되세요.
>
안녕하십니까? UserSpace임덩.
환절기 감기조심하시구영.
"DM2.Query1.Open;" 이부분에 TQuery의 Method인 ExecSQL을 쓰셔야 함당.
Insert, Update, Delete 같이 DB를 직접 조작하는 수행문은 ExecSQL을...
Select와 같이 단순조회는 Open을 사용합니다.
Open을 ExecSQL로 고치면 잘 될겁니덩.
참 그리고 아시겠지만 이런 ExecSQL을 사용할땐
try except을 사용하시는게 좋을실듯 하네영.
DB의 StartTransaction/ Commit / RollBack Method도 같이영..
그럼 수고...