Q&A

  • E-FAIL 에러를 아십니까?
Delphi 와 MS-SQL Server를 연동해서 프로그래밍 하고 있습니다.



방식은 ADO 를 이용해서 ODBC 로 연결해 쓰고 있습니다.



그런데....



아우터조인해서 쓰면 에러가 납니다.



예를 들어



지역 테이블이 있습니다.(테이블명 t_area)

거기에는 지역코드 (필드명 a_code)와 지역명이 있습니다(필드명 a_name)



그리고 친구 테이블이 있습니다 (테이블명 t_friend)

그 테이블에는 친구이름(필드명 f_name), 친구 전화번호(필드명 f_phone),

출생지 (f_born), 현재거주지(f_live)등등이 있고...



그 친구의 출생지와 현재 거주지를 위의 지역코드에서 가지고 올려고 하는데...

출생지와 현재 거주지를 모르는 친구도 있어서 비워둘 수도 있습니다.

(그러니깐 필수 입력항목이 아니라 선택항목이란 말이죠)



그랬을때 제가 쓰는 SQL문장은...



Select t_friend.f_name, t_friend.f_phone, born.bornname, live.livename



From

t_friend,

(Select a_code, a_name As bornname From t_area) As born,

(Select a_code, a_name As livename From t_area) As live



Where

t_friend.f_born *= born.a_code and

t_friend.f_live *= live.a_code



위와 같이 사용을 합니다.



그런데 위의 내용 중에서 지역 테이블에 존재하는 코드를 입력을 하거나 비워두고 넘어

가면 문제 없이 넘어가는데 지역 테이블에 존재 하지 않는 코드가 입력이 되면 E-FAIL에

러가 납니다.



정확한 에러는



(Project Test.exe raised exception class EOleExceptioin whth message

'데이터 공급자나 기타 서비스가 E_FAIL 상태를 반환했습니다'. Process stopped. Use

Step or Run to continue ) 입니다.



제가 짠 SQL문장이 잘못 되었나요?

아니면 다른 문제가 있습니까? (제가 보기엔 ODBC 쪽에 문제가 있는듯 한데...)



고수님들의 속시원한 답변 부탁드립니다.



혹시 저의 질문이 불충분하다거나 답변을 아신다면 주저하지 마시고 리플 달아주십시요.

답답해 죽을 지경입니다. ㅠ.ㅠ

0  COMMENTS