[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

레이블이 Error인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Error인 게시물을 표시합니다. 모든 게시물 표시

2016년 2월 29일 월요일

[DB]MySQL "can't return a result set in the given context" 오류메시지..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

ASP로 MySQL을 사용하고 있었습니다. 디비연결해서 쿼리실행하고 결과값 받아서 사용하는 웹에서는 아주 일반적인 작업이지요. 그런데 Stored Procedure를 사용하려고 하는데 문제가 생겼습니다. 디비연결은 ODBC를 사용하고 있었습니다.

사용자 삽입 이미지

"PROCEDURE PROCEDURENAME can't return a result set in the given context"라는 오류메시지입니다. result set을 사용할 수 없더니 이리저리 해봐도 해결책을 찾을 수 없었습니다. 해당 오류메시지에 대해서는 MySQL 메뉴얼에 언급이 있었지만 이리저리 찾아본 결과 PHP나 C에 해당하는 내용인것 같았습니다. 스토어드 프로시져는 크게 이렇다할 게 없는 SELECT쿼리로 결과값 받아오는 정도였습니다.

쓰고있는 라이브러리쪽 문제인가 해서 라이브러리를 완전히 걷어내고 ASP에서 직접 디비 붙어서 수행해 보아도 결과는 마찬가지였습니다. 일반적인 SELECT쿼리를 사용했을때는 괜찮았는데 Stored Procedure를 사용하면 위의 에러메시지가 나타났습니다. MySQL은 5.0.27 Community 버전이었습니다.

Stored Procedure가 문제인지 ODBC가 문제인지 의심하고 있었는데 범인은 ODBC였습니다. 정확히 어떤부분의 동작때문인지까지는 파악하지 못했지만 MySQL ODBC 3.51 Driver를 사용하고 있었는데 버전이 맞지 않아서 지원이 제대로 되지 않은 것입니다. ODBC를 5.1.5버전으로 업그래이드하니까 문제는 바로 해결되었습니다.

ODBC 5.1버전은 MySQL사이트에서 다운로드 받을 수 있습니다. 윈도우에 경우 다운로드 받은 후 인스톨러로 설정하면 [제어판] - [관리도구] - [데이터 원본 (ODBC)] 에서 드라이버탭에 가면

사용자 삽입 이미지
MySQL ODBC 5.1 Driver 가 설치된 것을 볼 수 있습니다.

1
2
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("DRIVER=MySQL ODBC 5.1 Driver;SERVER=서버아이피;DATABASE=디비이름;UID=사용자이름;PWD=비밀번호;")

커넥션 연결 드라이버를 위 코드처럼 MYODBC방식으로 MySQL 5.1 ODBC Driver를 이용해서 하면 됩니다.

My Comment..
이 글은 엄연히 구분하자면, ASP 관련 글이라고 볼 수 있다..
앞서 200번째 글에서도 언급을 했지만, 내가 접하지 않은 부분들에 대한 글을..
구태여 갖고 오지 않기로 마음 먹었다.. 그와 동시에.. 접하지 않았다 할지라도..
특정 부분에 도움이 된다면, 현존하는 카테고리에 녹아들도록 하기로 했었다..

그런 관점에서 해당 글을 가져왔다.. 비록 ASP 와 관련된 MySQL 이지만..
언어를 떠나서.. 이 글과 같은 DB 연결 도중 에러는 빈번하게 발생할 수 있기 때문이다..
그래서 카테고리도 [DB] 라고 표시했다..



2016년 2월 19일 금요일

[Talk]Google Blog Error..

The combined length of all the labels must be at most 200 characters..

두둥.. 햄의 글들을 퍼오고 있는데..
갑자기 생긴 에러..

처음에는 저 글 자체를 읽지도 않고서..
걍 IE 에서 일시적으로 발생한 에러로 생각하고서..
'게시' 만 계속해서 눌렀다.. 그런데 아무래도 이상하단 말이지.. [믕챙하긴.. ㅡㅡ..]

그래서 결국에는 새로고침을 눌러서 새로 저장을 눌러서..
똑같은 상황을 만들고, 그제서야.. 에러를 확인했다.. [개발도 아닌데.. 왠 똑같은 상황..]

무튼 그렇게 하고서 다시 저 오류를 보니..
결론은.. 직역하면 "레이블 길이가 200자이어야 된다.." 으잉..??..

구글 블로그 관리자 모드에서 글을 올릴 때 작성하는.. 오른쪽 태그 작성 공간..
그 공간에 tag.length < 200 이어야 된다는 것.. [ㅋㅋ.. 저렇게 적으니 왠지 개발자 스럽지..??]

머 그렇다는 것.. 햄 블로그는 그런게 없나보다..
그렇게 길게 태그가 작성된 것 보니.. 근데 도움말이나 아무것도 없었는데..
구글 이것들.. 은근히 이런 UI 내에서의 설명이나 그런건 좀 약한 듯..

방명록이 없는것도.. 카테고리 추가 안되는 것도.. [편법으로 하면 있지만..]
다 이해는 하지만, 그래도 설명은 친절하게 해주지..
꼭 뻘겅색으로 그렇게 에러 표시를 해야되것니..

에잇.. 드러버서.. 태그 확 줄이고서.. 글 올린다..
영어 조금만.. 아주 조금만 하면 아는 오류.. 설마 나처럼..
무작정 글 저장 버튼 누르고서 "어라.. 왜 안되지.. ??.. ㅡ..ㅡ+.." 이러는 사람은 없긋지..