2013-03-27 2 views
0

저는 qt 라이브러리가있는 일부 rdbms에 액세스 할 수있는 소프트웨어를 C++로하고 있습니다. 소프트웨어는 pc 용입니다. 소프트웨어는 rdbms의 이름과 프로그램이 실행할 SQL 쿼리를 선택하는 데 필요한 버전을 알고 있어야합니다. 어떤 rdbms 에서이 데이터를 검색 할 수있는 방법이 있습니까?RDbms 이름 및 버전

답변

0

모든 rdbms에서이 데이터를 검색 할 수있는 방법이 있습니까?

이 각 RDBMS에 고유 한 - 예를 들어, 오라클, 당신은

select * 
from v$version; 

을 할 수 있지만, 다른 RDBMS에서이 뷰가 존재하지 않습니다.

몇 가지 가능한 방법은 :

  • 당신은 어딘가 어쨌든 연결 매개 변수를 정의해야합니다. 심지어 그들은 종종 특정 RDBMS, 그래서 당신은 단순히 SQLFlavor=Oracle 또는 SQLFlavor=MySQL 같은 다른 매개 변수를 추가 한 다음

  • 당신은을 찾기 위해 몇 가지 추론을 사용할 수 있습니다 사용할 SQL 문을 결정하는 코드에서 SQLFlavor의 값을 사용할 수 있습니다 RDBMS. 예를 들어 v$version 뷰를 쿼리하십시오. 존재하지 않는다면 오류가 발생하며 오라클이 아니며 다음 시도 (예 : SELECT VERSION())를 계속 진행하여 MySQL인지 확인하십시오. 그렇지 않으면 결과를 사용하여 구체적인 Oracle 버전을 찾을 수 있습니다.

+0

그러나 모든 rdbms에는이 정보를 검색 할 수있는 방법이 있습니까? – lv92

+0

나는 그렇게 기대할 것이다 - 물론 확신 할 수 없다. :) –