2011-02-14 4 views
1

"blob_curr = 1"에서 오브젝트 ID가 다른 테이블에 존재하는지 확인해야합니다. 나는 이것을 어떻게하는지 모른다. 이것은 몇 년 전에 작성된 응용 프로그램이며 나는이 환경에 대한 지식이 거의 없도록 일부 변경을 요청받은 협동 프로그램 학생입니다. 이것이 도움이된다면 이것은 Powerbuilder 9.0입니다.서식 지정 표현식에서 데이터베이스 조회 수행하기

image description

답변

1

현재 두 가지 옵션이 있습니다

1) 당신은 항목이 다른 테이블에 존재하는지 여부를 반환하는 추가 필드를 포함하도록 데이터 윈도우 쿼리를 업데이트 할 수 있습니다 (스칼라 하위 쿼리가 마음에 따라 오는을 어떤 데이터베이스를 사용하고 있는지). 그런 다음 데이터 윈도우 표현식이이 열을 확인합니다. - 이것이 바람직한 해결책입니다.

2) 데이터 윈도우 표현식에서 생성 한 전역 사용자 정의 함수를 호출 할 수도 있습니다. 따라서 새로운 인수 (File-> New-> PB Object Tab-> Function)를 생성하고,이 인수는 입력 인수로 ID를 취하고 다른 테이블에서 조회를 수행 한 다음 결과를 리턴합니다. 그런 다음 데이터 윈도우 표현식에서이 함수를 직접 호출하여 테이블에 존재하는지 확인할 수 있습니다.

첫 번째 방법은 데이터베이스 효율이 가장 높습니다.

+1

답장을 보내 주셔서 감사 드리며, 저는이 상황에서 아무 것도 얻지 않을 것으로 기대합니다. – jaredw

+1

표현식은 많은 이벤트 (예 : DataWindow 컨트롤 스크롤)에서 재평가됨에 따라 표현식의 전역 함수에서 데이터베이스를 통해 네트워크로 이동하면 심각한 성능 저하가 발생할 수 있습니다. 표현식에는 표시 페이지의 첫 번째/마지막 행, 포커스가있는 행 등의 요소가 포함될 수 있으므로 표현식이 자주 다시 평가됩니다. 데이터베이스가 네트워크 측면에서 "닫기"상태이고 응답 시간이 좋은 경우 문제가되지 않을 수 있습니다. 옵션 1이 더 안전한 선택이 될 것입니다. – Terry

+1

나는이 혼란이 어떻게 작동하는지 배우기 위해 조금 더 열심히 밀고 나가고 옵션 1 스타일 픽스에서 변경을 구현했습니다. 이것은 프로그래머로서 저에게 매우 교육적인 경험이었습니다. – jaredw