|
안녕하세요?.....꾸벅....^^
오우....정말 오래간만에 와 보네요...
근데 확 달라졌네요?
순간 잘못들어 왔는줄 알고 나갔다가 다시 들어왔어요....^^
간만에 이렇게 들어와서 또 이상한 질문만...올리네요...에구...죄송....^^
다름이 아니라....하나의 프로그램에서 여러개의 Thread가 생성되서는
mdb의 하나의 table을 읽고 쓰는데 이걸 ADO로 할때에 대해서 여쭤볼까해요....
그니까....더 자세히 얘기하면...
쓰레드가 한번 생길때 마다 하나의 TADOConnection과 TADOQuery가 생깁니다.
그래서 각 쓰레드는 하나의 테이블 (예로, TestTable)을 읽고 쓰는데...
이때, 바로 쓸때...그니까...Insert를 할때 문제가 생기더라고요....
에러가 발생하면서 프로그램이 멈춥니다....에러메시지가 뭐라고 나냐 하면....
"현재 잠겨 있으므로 업데이트할 수 없습니다"
라고 뜹니다....아무래도 데드락이 걸리는거 같은데....
물론, 어떠한 Syncronize변수도 사용하지 않았읍니다...글구..
일부러 transaction도 걸지 않았거든요...(insert는 맨 마지막에 한번 일어나니까...
글구, insert문이나 update문 하나만 수행하면 transaction을 걸 필요 없는거 아닌가요?
알아서 처리해 주는거 아닌가요?)
하여튼 그래서 mdb화일있는 폴더를 보면..."Access.LockFile.9"화일이 생겨 잇어요...
왜 이런일이 생기는거죠? mdb는 한프로그램에서 하나의 session만 열수 있나요?
아니면 쓰레드에서 ADO를 쓰려면 다른 뭔가를 해줘야 하나요?
고수님들 부탁합니다....꾸벅....
그럼, 수고들 하시고...안녕....
|