2011-09-19 3 views
0

저는 이것이 힘든 일이라고 생각합니다!SQL의 동적 양에 액세스하십시오.

데이터베이스가 2 개 있습니다. DestinySource

Destiny 나는보기의 이름 목록을 포함하는 테이블을 가지고 있습니다. 그래서 처음에는보기를 호출합니다

GasPriceSourceID Name 
1 ICIS Heren TTF Bid 
2 ICIS Heren TTF Offer 
3 ICIS Heren TTF Midspread 
4 NPG Spot 
8 AEQ SYS Sell 
9 AEQ SYS Buy 
10 ICIS Heren Gaspool Midspread 

: 같은

ICIS Heren TTF Bid 데이터베이스에 : Source 다음 ICIS Heren TTF Offer 등등.

이 작업은 C# 콘솔 응용 프로그램에서 수행됩니다.

일반적으로 ADO.NET Entitiy 데이터 모델을 사용합니다. 그러나 이것은 데이터베이스의 정적 모델을 생성하지만 뷰는 매일 추가되고 제거됩니다.

모든보기는 ID, DateValue의 3 가지를 반환합니다.

나는 데이터베이스의 테이블에이 가격을 이동해야합니다 짧은 그래서 Destiny

. 운명에는 가격 근원의 명부가있다. 각 출처는 운명에 관한 테이블에 담길 많은 가격을 가지고 있습니다.

+1

동적 SQL. 주사를 조심해야한다. – Randy

답변

1

충분한 세부 사항 그냥 일반 포인터를 제공하지 않기 때문에 : 응용 프로그램에서

  • "수동"는 SQL 문자열을 구축을
    문제에 추천 경향이 NOT (보안, 성능 ...)

  • 빌드 다시 빌드하고 SQL SELECT를 실행하고 커서
    좀 더 안전 할 수 반환하는 저장 프로 시저 (ESP. SQL 주입을 방지 할 수 있습니다) 저장 프로 시저 이후로는보기의 존재를 확인 할 처음 ...

동의 : 해당보기에 액세스 할 때 정확히 무엇을하고 있습니까?

편집 - OP에서 더 많은 정보를 후 :

내가 모델이 떨어져 조금 의심 ... 당신은 아주 쉽게 열 Source, ID와 EXCATLY ONE보기를함으로써 해결 될 것입니다 무엇을 설명, DateValue입니다.

이렇게하면 모든 동적 SQL이 만들어지고 결과적으로 문제가 발생합니다. 예를 들어 WHERE Source = 'ICIS Heren TTF Bid'과 함께 "일반 쿼리"를 사용할 수 있기 때문에 ... EF 및/또는 LINQ와 같은 기타 기술 "즉시"작업 할 수 있습니다 ...

+0

조금 더 많은 정보를 추가했습니다. 부담없이 물어보십시오. – CasperT

+0

위의 내 편집을 참조하십시오 ... – Yahia

+0

아,하지만 원본 DB에서 뷰를 제어하지 않습니다. 나는 운명만을 통제한다. 또한 미래에는 운명에 따라 가격이 달라질 수 있습니다.따라서 x, y, z보기는 운명에 관한 표에 들어갑니다. x, z, g는 운명 등등에 테이블 b에 간다 – CasperT

관련 문제