From 6409468a81401c7f60fb98ec4914cf08843e0bcf Mon Sep 17 00:00:00 2001 From: gstojsic Date: Fri, 18 Nov 2016 10:09:00 +0100 Subject: [PATCH 1/2] Make Ms Jdbc driver more spring friendly (https://connect.microsoft.com/SQLServer/Feedback/Details/3100563) --- .../sqlserver/jdbc/SQLServerDataTable.java | 16 ++++++++++++++-- .../java/com/microsoft/sqlserver/jdbc/TVP.java | 5 ++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java index fef139b5a..7b2cefc60 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java @@ -35,6 +35,8 @@ public final class SQLServerDataTable { Map columnMetadata = null; Map rows = null; + private String sqlType = null; + /** * The constant in the Java programming language, sometimes referred to as a type code, * that identifies the type TVP. @@ -235,5 +237,15 @@ else if(val instanceof OffsetTime) public synchronized Map getColumnMetadata() { return columnMetadata; - } - } + } + + public String getSqlType() + { + return sqlType; + } + + public void setSqlType(String sqlType) + { + this.sqlType = sqlType; + } + } diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/TVP.java b/src/main/java/com/microsoft/sqlserver/jdbc/TVP.java index da9dc8b7b..a79c009ac 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/TVP.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/TVP.java @@ -72,7 +72,10 @@ void initTVP(TVPType type, String tvpPartName) throws SQLServerException // Name used in CREATE TYPE TVP(String tvpPartName, SQLServerDataTable tvpDataTable) throws SQLServerException { - initTVP(TVPType.SQLServerDataTable, tvpPartName); + if (tvpPartName == null) { + tvpPartName = tvpDataTable.getSqlType(); + } + initTVP(TVPType.SQLServerDataTable, tvpPartName); sourceDataTable = tvpDataTable; sourceDataTableRowIterator = sourceDataTable.getIterator(); populateMetadataFromDataTable(); From 34c3d971b4df699a498cfdb522b195b2033a9941 Mon Sep 17 00:00:00 2001 From: gstojsic Date: Thu, 24 Nov 2016 23:43:57 +0100 Subject: [PATCH 2/2] Rename sqlType to tvpName --- .../sqlserver/jdbc/SQLServerDataTable.java | 13 +++++-------- src/main/java/com/microsoft/sqlserver/jdbc/TVP.java | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java index 7b2cefc60..1a360537e 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java @@ -21,9 +21,6 @@ import java.util.*; import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; import java.text.MessageFormat; import java.util.Map.Entry; import java.time.*; @@ -35,7 +32,7 @@ public final class SQLServerDataTable { Map columnMetadata = null; Map rows = null; - private String sqlType = null; + private String tvpName = null; /** * The constant in the Java programming language, sometimes referred to as a type code, @@ -239,13 +236,13 @@ public synchronized Map getColumnMetadata() return columnMetadata; } - public String getSqlType() + public String getTvpName() { - return sqlType; + return tvpName; } - public void setSqlType(String sqlType) + public void setTvpName(String tvpName) { - this.sqlType = sqlType; + this.tvpName = tvpName; } } diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/TVP.java b/src/main/java/com/microsoft/sqlserver/jdbc/TVP.java index a79c009ac..0264d49fb 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/TVP.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/TVP.java @@ -73,7 +73,7 @@ void initTVP(TVPType type, String tvpPartName) throws SQLServerException TVP(String tvpPartName, SQLServerDataTable tvpDataTable) throws SQLServerException { if (tvpPartName == null) { - tvpPartName = tvpDataTable.getSqlType(); + tvpPartName = tvpDataTable.getTvpName(); } initTVP(TVPType.SQLServerDataTable, tvpPartName); sourceDataTable = tvpDataTable;