diff --git a/plugins/org.jkiss.dbeaver.ext.mssql/plugin.xml b/plugins/org.jkiss.dbeaver.ext.mssql/plugin.xml index 7c4e0db2ddf2eb22d1db2ae110eacafecd29d86f..ddd4d6ce322ceac2802c3af6b55f7c70c23eac29 100644 --- a/plugins/org.jkiss.dbeaver.ext.mssql/plugin.xml +++ b/plugins/org.jkiss.dbeaver.ext.mssql/plugin.xml @@ -139,7 +139,7 @@ - + @@ -167,7 +167,7 @@ - + @@ -289,7 +289,7 @@ - + diff --git a/test/org.jkiss.dbeaver.db.test/src/org/jkiss/dbeaver/ext/test/SQLServerFetchTest.java b/test/org.jkiss.dbeaver.db.test/src/org/jkiss/dbeaver/ext/test/SQLServerFetchTest.java new file mode 100644 index 0000000000000000000000000000000000000000..def0459d8956fad0e6fc36b6cd31a1a99068f833 --- /dev/null +++ b/test/org.jkiss.dbeaver.db.test/src/org/jkiss/dbeaver/ext/test/SQLServerFetchTest.java @@ -0,0 +1,63 @@ +package org.jkiss.dbeaver.ext.test; + +import java.sql.*; +import java.util.Properties; + +public class SQLServerFetchTest { + + public static void main(String[] args) throws Exception { + Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); + Properties props = new Properties(); + props.put("integratedSecurity", "true"); + Connection dbCon = DriverManager.getConnection("jdbc:sqlserver://;serverName=localhost;databaseName=master", props); + dbCon.setAutoCommit(false); + try (Statement dbStat = dbCon.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) { + int rsCount = 0; + + if (dbStat.execute("sp_help TestTable")) { + dumpResultSet(dbStat, rsCount); + rsCount++; + } + while (dbStat.getMoreResults() || dbStat.getUpdateCount() != -1) { + dumpResultSet(dbStat, rsCount); + rsCount++; + } + System.out.println("Total result = " + rsCount); + } + } + + + public static void dumpResultSet(Statement dbStat, int number) throws SQLException { + System.out.println("================================================ " + number); + try (ResultSet dbResult = dbStat.getResultSet()) { + ResultSetMetaData md = dbResult.getMetaData(); + int count = md.getColumnCount(); + dumpResultSetMetaData(dbResult); + while (dbResult.next()) { + for (int i = 1; i <= count; i++) { + String colValue = dbResult.getString(i); + System.out.print(colValue + "\t"); + } + System.out.println(); + } + System.out.println(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public static void dumpResultSetMetaData(ResultSet dbResult) + { + try { + ResultSetMetaData md = dbResult.getMetaData(); + int count = md.getColumnCount(); + for (int i = 1; i <= count; i++) { + System.out.print(md.getColumnName(i) + " [" + md.getColumnTypeName(i) + "]\t"); + } + System.out.println(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + +}