2014-10-07 3 views
2

Есть ли способ идентифицировать версию SQL Server с использованием реализаций JDBC? Я специально хочу идентифицировать период с 2008 по 2012 год.Определить версию SQL Server с использованием JDBC

Мотив: 2008 не поддерживает OFFSET, но 2012 делает. Поэтому мне нужно добавить условный код в мое приложение, чтобы соответствующим образом изменить SQL-запрос.

+0

Я считаю, Я нашел ответ здесь http://stackoverflow.com/questions/18753886/sql-server-file-names-vs-versions. -Скорость – MAmateur

+0

'DatabaseMetaData.getDatabaseMajorVersion()' и 'DatabaseMetaData.getDatabaseMinorVersion()' –

ответ

3
import java.sql.*; 
/** 
    * Microsoft SQL Server JDBC test program 
    */ 
public class Test { 
    public Test() throws Exception { 
    // Get connection 
    DriverManager.registerDriver(new 
    com.microsoft.jdbc.sqlserver.SQLServerDriver()); 
    Connection connection = DriverManager.getConnection(
    "jdbc:microsoft:sqlserver://<Host>:1433",<"UID>","<PWD>"); 
    if (connection != null) { 
    System.out.println(); 
     System.out.println("Successfully connected"); 
     System.out.println(); 
     // Meta data 
     DatabaseMetaData meta = connection.getMetaData(); 
     System.out.println("\nDriver Information"); 
     System.out.println("Driver Name: " 
     + meta.getDriverName()); 
     System.out.println("Driver Version: " 
     + meta.getDriverVersion()); 
     System.out.println("\nDatabase Information "); 
     System.out.println("Database Name: " 
     + meta.getDatabaseProductName()); 
     System.out.println("Database Version: "+ 
     meta.getDatabaseProductVersion()); 
    } 
} // Test 
public static void main (String args[]) throws Exception { 
    Test test = new Test(); 
} 
} 

Компиляция это

Компиляция Java Источник: Test.java (все в одну строку):

$ javac -classpath ".;./lib/mssqlserver.jar; 
    ./lib/msbase.jar;./lib/msutil.jar" Test.java 

Имейте в виду, что вы должны иметь доступ к программе JAVAC на вашем компьютере или средствах массовой информации , Если нет, просто укажите полный путь перед javac. Вышеприведенная команда хороша для Java 2. Если вы используете, например, Java 1.1.8, добавьте классы JDK class.zip в путь к классам. В Unix-системах замените точки с запятой «;» на colons »:« Прямые косые черты »/« отлично подходят для обеих платформ, не обязательно использовать обратную косую черту »в Windows.

Выполнить это

Подобно подборке вы можете запустить его, как это (опять же все в одной строке):

$ java -classpath ".;./lib/mssqlserver.jar; 
    ./lib/msbase.jar;./lib/msutil.jar" Test 

Результат выглядит примерно так:

Successfully connected 

Driver Information 
    Driver Name: SQLServer 
    Driver Version: 2.2.0022 

Database Information 
    Database Name: Microsoft SQL Server Database Version: 
    Microsoft SQL Server 2000 8.00.194 (Intel X86) 
    Aug 6 2000 00:57:48 
    Copyright (c) 1988-2000 Microsoft Corporation 
    Enterprise Edition on Windows NT 5.0 
    (Build 2195: Service Pack 2) 
Смежные вопросы