• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 2617
2005.09.25 (01:25:27)
게시판을 이용해 주셔서 감사합니다.
다음양식에 맞게 입력해주세요.

* 고객시스템명 : 광고통합관리 시스템
* GAUCE 버전 : 닷넷 4.0
* WAS 종류(WebLogic 등등) :
* DB 종류 : 사이베이스
* 문의 유형(질문/요청/참조) :
* 내용 :

string SelectSql = null;  
OleDbTransaction trnew = null;

// Transaction을 시작합니다.
trnew = (OleDbTransaction) oConn.beginTransaction();

SelectSql = "";
//현재 사번의 삭제할 권한의 데이터를 가져온다.
SelectSql = "SELECT a.idno,b.page_id FROM ua056tb a inner join ua096tb b " +
                 " On a.comp_code = b.comp_code" +
         " WHERE idno ='2222'" +
         "     And th_gubun = '23'";
                
DataSet ds = objGBasePage.GauceDbHelper.buildDataSet(oConn, SelectSql, "Mytable");                

//사용자별 권한 테이블에서 위 쿼리결과의 데이터를 삭제한다.
foreach ( DataRow dr in ds.Tables[0].Rows )
{
        SelectSql = "";

        SelectSql = "Delete From ua057tb " +
                        " Where idno ='" + dr["idno"].ToString () + "'" +
                        "   And page_id='" + dr["page_id"].ToString () + "'";

        objGBasePage.execNonQuery(oConn, SelectSql, null, trnew);

}                    

위에서 코딩한것과 같이 트랜잭션을 걸고 Select쿼리를 날리면  아래와 같이 에러 메세지가 나타납니다.
  
DataSet ds = objGBasePage.GauceDbHelper.buildDataSet(oConn, SelectSql, "Mytable");    <==부분에서에러

명령에 할당된 연결이 보류중인 로컬 트랜젹션에 연결되어 있는 경우 Excute를
사용하려면 트랜젹션 개체가 필요합니다.

DataSet ds = objGBasePage.GauceDbHelper.buildDataSet(oConn, SelectSql, "Mytable",trnew);면 될텐데...
buildDataSet는 오버라이딩된게 없더라구요..
트랜젹션 중간에 Select쿼리를 날릴수는 없나요?
 
Tag List
XE Login