2014-03-28 1 views
1

저는 1 년 동안 델파이 용 UniDac VCL 컴포넌트를 사용해 왔지만 최근에는 SQL Server 2012와 함께 꽤 큰 프로젝트를 시작했습니다. 그리고 테이블과 스토어드 프로 시저를 다른 스키마로 분리하려고합니다. 저장 프로 시저 그래서 쿼리 프로그램의 유일한 저장된 프로 시저 이름 및 매개 변수가 있습니다.UniDac이 스토어드 프로 시저 스키마를 찾지 못함

문제는 그때의이 SchemaA을 말할 수 있도록 dbo에서 내 저장 프로 시저의 스키마를 변경하면 TUniStoredProc 구성 요소가 ProcedureName로서가 아니라 저장 프로 시저를 발견하지 않는 예외를 throw SchemaA.ProcedureName로 발견 델파이에서 실행하려고한다는 것입니다 on 실행.

사용 권한에 따라 4-6 개 스키마를 사용하는 사용자가 있기 때문에 다른 사용자에게 기본 스키마로 다른 스키마를 할당 할 수 없습니다. 내가 이미 시도한 것은 수동으로 SchemaA.ProcedureName을 입력하고 완벽하게 작동하지만 ~ 150 가지 구성 요소에 대해 이렇게하면 많은 시간이 필요하므로 더 나은 솔루션을 찾고 있습니다.

의견이 있으십니까?

+0

그럼 실제로 질문입니다 : 모든 'TUniStoredProc' 구성 요소에서 프로 시저 이름을 "ProcedureName"에서 "SchemaA.ProcedureName"으로 어떻게 변경합니까? 그것들은 모두 데이터 모듈에 있습니까? 아니면 폼에 흩어져 있습니까? –

+0

whell은 하나 이상의 옵션을 가지고 있지 않습니다. P는 내 질문에 TUniStoredProc이 스키마를 자동으로 감지하도록하거나 서버에 올바른 권한을 부여하는 방법에 더 가깝습니다. 사용자가 db_owner를 사용하면 모든 스키마를 볼 수 있습니다. 저장 프로 시저 스키마를 지정하지 않은 스키마 및 예 내 모든 저장 프로 시저 구성 요소는 2 개의 개별 데이터 모듈에 있습니다. :) – AirWolf

답변

0

해당 구성 요소가 얼마나 많은 양식이나 모듈인지는 모르겠지만 중앙 집중화 된 경우 양식을 텍스트 모드로 열고 대체하십시오.

UniDac의 매크로가 여기에 유용 할 수 있습니다. {MySchema} .ProcedureName을 사용하고 연결 매크로에 MySchema 이름을 설정할 수 있습니다.

+0

만약 내가 단 하나의 구성표를 사용한다면 그것은 좋은 결정이 될 것이다. 그러나 당시 나는 약 7 개의 스키마를 사용 했으므로 실제로는 Unidac이 스키마를별로 좋아하지 않는다는 것을 알게되었다. 그들을 사용하지 않기 – AirWolf

관련 문제