|
답변 감사드립니다...
그 부분은 말씀하신대로 적용하여 해결이 된 것 같습니다...꾸벅~!
그런데 현재 adoquery-datasource-dbgrid를 쓰는데요...
select한 항목이 있을 때는 제대로 가져옵니다...헌데 dbgrid에 뿌려진 항목들을 모두 del_table로 넣어서 결국 select할 항목이 없을 경우에는 invalid variant type이라는 에러메세지가 가차없이 나옵니다.
try-catch로 감싸주어도 에러메시지는 여전히 뜹니다.
제가 던져준 sql문의 뜻은 table에서 일련번호와 순서를 가져오는데 memo필드는 mem_name이고 일련번호는 0보다 크고 del_table의 memo필드는 mem_name인 일련번호와 일치하지 않는 항목만을 select하는 것입니다.
말이 좀 꼬인 것 같은데요...결론은 del_table에 있는 항목은 빼고 table에서 가져오고자 하거든요.
try로 감싸주어도 에러메시지가 뜨는 이유와 invalid variant type이라는 에러메시지를 해결하는 방법을 알고 싶습니다.
골치아프게 해드려 죄송합니다.
최보현.U&I 님이 쓰신 글 :
: Jun 님이 쓰신 글 :
: : 안녕하세요...
: : 아래와 같이 sql문을 adoquery에 주었습니다.
: :
: : ADOQuery3->SQL->Clear();
: : ADOQuery3->SQL->Add("select 일련번호, 순서 from table where memo = ");
: : ADOQuery3->SQL->Add(mem_name);
: : ADOQuery3->SQL->Add(" and 일련번호 > 0 and 일련번호 NOT IN (select 일련번호 from del_table where memo= ");
: : ADOQuery3->SQL->Add(mem_name);
: : ADOQuery3->SQL->Add(")");
: :
: : select한 필드가 없을 때...예를 들어 일련번호 > 0 인 row가 없을 때 parameter aaa has no default value 라는 메세지가 뜹니다..
: :
: : 만일 adoquery3에 미리 sql을 써 넣고 parameter를 넘겨주는 식으로 하면 invalid variant type conversion이라는 메세지가 계속하여 뜹니다.
: :
: : sql문을 잘못 써준 건 아닌 것 같은데 어떤 부분을 손 봐야 할지 감이 잡히지 않아 이렇게 질문드립니다..
: :
: : 답변 부탁드릴께요...
:
: 음 일단 Memo 의 자료형이 메모형또는 문자열 이라면은 ...
: SQL 문장이 잘못 되었습니다.
:
: 다음과 같이 되어야 하지요 ...
:
: ADOQuery3->SQL->Clear();
: ADOQuery3->SQL->Add("select 일련번호, 순서 from table where memo = '");<-- (') 에 주의
: ADOQuery3->SQL->Add(mem_name);
: ADOQuery3->SQL->Add("'"); <-- (') 에 주의
:
: 그럼 답변이 되었겠지요
:
: 개박살 보다 조금 나은 허접 현이 였습니다.
:
|