|
답변 감사합니다.
and 라는 기능이 있었군요 ㅎㅎ
초보다 보니까 간단한 명령어를 모르는 경우가 많아서 자주 헤매네요 ㅎㅎ
답변 감사합니다~
허정주 님이 쓰신 글 :
: 간단하게는 where 절 용 String 변수를 둬서 Length 가 0 보다 크면 AND 를 붙여주면 되겠네요.
:
: sky 님이 쓰신 글 :
: : 우선 제가 짠 코드 보시죠.....
: :
: : AnsiString MODEL = ComboBox9->Items->Strings[ComboBox9->ItemIndex];
: : AnsiString Serial = ComboBox6->Items->Strings[ComboBox6->ItemIndex];
: : AnsiString Machine_Name = ComboBox8->Items->Strings[ComboBox8->ItemIndex];
: :
: :
: : AnsiString Query1 = "MODEL";
: : AnsiString Query2 = "Serial";
: : AnsiString Query3 = "고객사_일련No";
: :
: : ADOQuery1->SQL->Clear();
: :
: : switch(ComboBox1->ItemIndex)
: : {
: : case 0:
: : ADOQuery1->SQL->Add("select * from SEC_S_LSI_Logic_Power_CSR");
: :
: : if(ComboBox9->ItemIndex != -1)
: : ADOQuery1->SQL->Add("where " + Query1 + " LIKE '" + MODEL + "%'");
: :
: : if(ComboBox6->ItemIndex != -1)
: : ADOQuery1->SQL->Add("where " + Query2 + " LIKE '" + Serial + "%'");
: :
: : if(ComboBox8->ItemIndex != -1)
: : ADOQuery1->SQL->Add("where " + Query3 + " LIKE '" + Machine_Name + "%'");
: :
: : // ADOQuery1->SQL->Add("where " + Query2 + " LIKE '" + Machine_Name + "%'");
: : // ADOQuery1->SQL->Text = "select * from samsung where 설비명 = LPP";
: :
: : ADOQuery1->Open();
: :
: : break;
: :
: : 검색기능을 만드는 중인데요.
: :
: : 쿼리로 테이블을 불러와서 where, like로 검색을 하는겁니다.
: :
: : 콤보박스는 3개가 있구요. 각각의 콤보박스에는 SEC_S_LSI_Logic_Power_CSR 이라는 테이블의
: :
: : MODEL, Serial, 고객사_일련No 라는 3개의 필드의 모든 항목이 리스트로 들어가 있습니다.
: :
: : 제가 짠 코드를 보시면 각각의 콤보박스에서 리스트를 선택하면 if문이 실행되어 검색기능을 수행하는걸 알수 있을겁니다.
: :
: : 그런데 제가 짠 코드를 보시면 문제가.. 콤보박스9 에서 리스트를 선택하고, 콤보박스6을 선택하면 sql의 add문에 의해서 "SEC_S_LSI_Logic_Power_CSR 이라는 sql문에 콤보박스9에 의한 add문이 추가되고 거기에 콤보박스6에 의한 add문이 추가되어 전체적으로
: : SEC_S_LSI_Logic_Power_CSR "where " + Query1 + " LIKE '" + MODEL + "%'" "where " + Query2 + " LIKE '" + Serial + "%'" 이라는 말도 안되는 sql문이 생성된다는거죠.
: :
: : 당연히 에러가 나구요.
: :
: : 제가 원하는 검색기능은 콤보박스9에서만 리스트를 선택하면 콤보박스9에 의한 검색기능만 실행되고
: : 콤보박스9에 콤보박스6을 추가로 선택하면 콤보박스9와 콤보박스6의 조건을 동시에 만족하는 결과값을 검색으로 뽑아내는건데요.
: :
: : 잘 모르겠습니다.
: :
: : 혹시 방법을 아시는분은 도움좀 주시면 감사하겠습니다....
|