2013-05-28 5 views
1

사용자 정의 유형 및 날짜 유형 속성에 일부 문자열 유형 속성이 있습니다. r_creation_date. 검색에 모두 사용하여 더 많은 필드가 값을 입력하면 결과가 좁혀집니다.필드 값을 확인한 다음 DQL을 실행하는 방법

D2-Client 3.1을 사용하고 D2-Composer를 사용하여 검색 속성 페이지와 쿼리 폼 (여기서 DQL을 지정 함)을 작성합니다.

I이 DQL 형성 한 문자열 입력 필드에 대한 필터링

: 모든 우선 어떤 캐릭터가 그 속성에 해당 문자열의 발생을 확인하여 입력 될 때마다 :

select * from my_custom_type 
    where (strattrib1 like '%$value(strattribinput1)%') and 
      ("strattrib2" like '%$value(strattribintput2)%') and 
      ("strattrib3" like'$value(strattribintput3)%') and 
      ("strattrib4" like '%$value(strattribintput4)%') and 
      ("strattrib5" like '%$value(strattribintput5)%') and 
      ("strattrib6" like '%$value(strattribintput6)%') 

여기 LIKE %은 이중 목적을 수행. 아무 것도 입력하지 않으면 해당 속성의 모든 값을 고려합니다. 이렇게하면 빈 입력을 명시 적으로 확인하지 않고 AND을 보낼 수 있습니다. ($value(strattrib1)<>'')

이제이 검색어에 날짜 유형 속성 r_creation_date에 필터를 추가하고 싶습니다. 그러나 나는 날짜 비교를위한 DATEDIFF() 기능을 사용할 필요가 명시 적으로 r_creation_date에 어떤 입력을 확인해야하기 때문에 다음과 같이 나는이 작업을 수행 할 수있는 방법 위선적 인 말투 : 사용자가 r_creation_date_input에 대한 날짜를 선택하지 않는 경우 여기

select * from my_custom_type 
    where (strattrib1 like '%$value(strattribinput1)%') AND 
      ("strattrib2" like '%$value(strattribintput2)%') AND 
      ("strattrib3" like'$value(strattribintput3)%') AND 
      ("strattrib4" like '%$value(strattribintput4)%') AND 
      ("strattrib5" like '%$value(strattribintput5)%') AND 
      ("strattrib6" like '%$value(strattribintput6)%') AND 
      (DATEDIFF(day, "r_creation_date", DATE('$value(r_creation_date_intput)')) >= 0 AND $value(r_creation_date_input)<>'')   

, $value(r_creation_date_input)<>''의 결과는 FALSE이고 전체 쿼리는 FALSE입니다. 따라서 select 쿼리는 아무 것도 반환하지 않습니다.

질문

  • 내가 어떻게 할 수 있습니까?
  • 다른 방법이 있습니까?
  • 표준 접근 방식은 무엇입니까?
  • 동일한 DQL에 날짜 필드에 필터를 추가하고 싶습니다. 그래서 가능합니까?
  • 문자열 속성에 대한 입력을 어떻게 검증 할 수 있습니까? Java로 작성하여 D2-Client에 연결할 수 있습니까? 접근의

답변

0

하나는이

AND ((DATEDIFF (일, "r_creation_date", DATE ('$ 값 (r_creation_date_intput)') 또는 $ 값 (r_creation_date_intput) = '')처럼

사용자가 아무것도 ENTERE하지 않는 경우 두 번째 조건이 참 동일하고 쿼리의 다른 모든 부분이 잘 작동합니다.

을하지만 사용자 입력이 비어있을 때 일반적으로 Documentum의 자동 절을 제외 할 수 있습니다. TaskSpace를 검색 양식 예를 들어 Documentum의이 자동으로 수행 D2에 대해서는 잘 모르겠지만 작동 할 수 있습니다. 뿐만 아니라.

관련 문제