티스토리 뷰

반응형

VB를 이용해서

다양한 목적으로

프로그래밍을 할 수가 있지만

일반적으로 많이 사용되는

용도중 하나인

DB연동 프로그래밍의 기본적인 구조는

보통 이렇다.






1. GUI에서 이벤트 발생.
             ↓
2. DB에 접속해서 쿼리작업.
             ↓
3. 결과를 보여줌.

오늘 이야기 하려는 것은 그 중 DB연동 쿼리작업에 대한 것이다.

이 이야기를 하려면

프로시져에 대한 약간의 지식을 필요로 는데,

프로시져란 간단하게 말해서 연관성이 있는 둘 이상의 쿼리를 하나의 작업단위로 묶은 것을 말한다.

그런데 프로시져를 실행시키기 위한 구문을 작성하고

Ado를 open해도 아래와 같은 메세지가 뜨는 경우가 있다.


음..... 왜 Ado개체가 open되지 않는걸까.....

어디가 잘못된 건지 찾기위해 열심히 작성한 프로시져와 소스를 들여다본다.

.
.
.

문법이 틀린것도 아니고, 그렇다고 쿼리문이 잘못 작성된 것도 아니다.

그런데 더 황당한 건 작성한 쿼리를 쿼리분석기에서 돌려보면 결과가 잘만 나온다는 것이다.

차라리 어디선가 에러메세지라도 떴으면 좋겠다.

이러면 개발자 입장에서는 속이 터진다.

도무지 어디가 잘못된건지 알 방법이 없다.

.
.
.

이 아리송한 문제의 해답은 사실 프로시져에 있다. ^^

혹시 nocount 옵션을 알고 있는지?

nocount란

쿼리분석기에서 결과가 나오고 난 후







이런 메세지를 띄워줄 것인지를 결정하는 옵션이다.

nocount on을 하면 위의 결과 메세지는 나오지 않으며, nocount off를 해 주면 위의 결과 메세지가 나오게 된다.


그럼 이 옵션과 ado가 open되지 않는 현상과의 관계는 어떻게 되는 걸까.

이 문제를 해결하기 위한 조치는 다음과 같다.

프로시져의 처음 select 앞에 nocount on 을 한 다음 프로시져의 맨 마지막에 nocount off 을 명시 해 주는 것.

그리고 실행하면 결과는?

ㅎㅎㅎ

결과는 예상대로다.

결과가 궁금한 사람은 직접 해 보는 게 제일 빠를 것이다. ^^









블로그코리아에 블UP하기

반응형
댓글
반응형
02-19 12:32
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함