|
안녕하십니까.
쿼리 자체에는 이상이 없는것 같구여..
문자열을 SQL에 Add를 이용해서 넣으실때는 항상 띄어쓰기에 주의 하셔야 합니다.
아래의 소스는 SQL->Text로 확인해보시면 알겠지만
"select Memnum from EMP AS Awhere Memnum = select ..."이런식으로 치환이 될겁니다.
다음 문장과의 사이에 띄어쓰기가 안되있어서 에러가 났을것 같군여..
다음과 같이 바꿔주세요.
Query1->SQL->Add("select Memnum from EMP AS A");
Query1->SQL->Add(" where Memnum = select min(Memnum) from EMP AS B");
Query1->SQL->Add(" where B.flag = '0' and B.Memnum != NULL");
그럼 도움이 되셨길..
콩아 님이 쓰신 글 :
: void __fastcall Tfrmusercontrol::edtindexChange(TObject *Sender)
: {
: // Memnum 필드에서 가장 최소의 값을 갖고있는 것을 찾아온다.(퇴사자로구분된 사람들 중에서..)
: Query1->Close();
: Query1->SQL->Clear();
: Query1->SQL->Add("select Memnum from EMP AS A");
: Query1->SQL->Add("where Memnum = select min(Memnum) from EMP AS B");
: Query1->SQL->Add("where B.flag = '0' and B.Memnum != NULL");
: Query1->Open();
:
: edtindex->Text = Query1->FieldByName("Memnum")->AsString;
: /* select Memnum
: from EMP AS A
: where
: Memnum = select min(Memnum)
: from EMP AS B
: where
: B.flag = '0'
: and B.Memnum != NILL */
:
: // 최소의 Memnum필드를 사용하였으면 그 필드는 다시 사용할 수없다.
: // null 값을 변경시켜 줘야 다음에 퇴자사 중에서 최소의 Memnum 필드를 찾을 때 검색하지 않음
: Query1->Close();
: Query1->SQL->Clear();
: Query1->SQL->Add("select Memnum from EMP AS A");
: Query1->SQL->Add("where Memnum = select min(Memnum) from EMP AS B");
: Query1->SQL->Add("where B.flag = '0' and B.Memnum != NULL and A.flag = '0'");
: Query1->Open();
:
: /* select Memnum
: from EMP AS A
: where
: Memnum = select min(Memnum)
: from EMP AS B
: where
: B.flag = '0'
: and B.Memnum != NILL
: and A.flag = '0' */
: }
: 이렇게 바꿨거든요!!!! C++ Builder에서 사용하게요!!!
: 그런데, 쿼리문이 잘못되었다고 에러가 나는군요!!
: 좀 알려주세요!!!
:
:
|