현재 odbc 기반 adodb를 쓰고 있습니다.

그리고 멀티스레드를 사용하고 있습죠



현재 db에 접근할때는

한번 open (초기화 및 연결)을 하고 sql문 실행하고 close (정리 및 끊기)를 하는데요

이걸 멀티스레드로 막 돌리면 뭔가 오류가 날거같아서

동기화 시켜줬습니다.


그래서 프로그램을 돌리는데

1~2시간, 적게는 30분? 정도씩 돌리다가

어느순간에 close 부분에서 

ConnectionPtr 을 close 해주고 있는데

release에서 오류가 나더라구요...

그래서 왜 오류나나 봤더니

NULL 포인터를 참조했다더군요.........

분명 open부터하고 close를 했는데 참...

( open에서 실패하면 false 반환해서 체크까지 해놨어요 )



지금 CoInitialize 인가를 멀티쓰레드 되게 해놨는데


사실 멀티스레드할때 open이랑 close까지를 완전히 뮤텍스로 락걸어놨는데


왜 하다가 NULL포인터가 될까요.............

너무 빨리 돌려서 그런가


지금 insert문과 select문 둘다 오류가 나더라구요........


이거 해결방법 아시나요~?