[libgda] Added specific code for SqlServer accessed through JDBC



commit a4026ba4e602aa82e5ebb0d9b5da712fed4a7dad
Author: Vivien Malerba <malerba gnome-db org>
Date:   Thu Apr 25 22:25:23 2013 +0200

    Added specific code for SqlServer accessed through JDBC

 providers/jdbc/Makefile.am    |    3 ++-
 providers/jdbc/provider.java  |   16 +++++++++++++++-
 providers/jdbc/sqlserver.java |   11 +++++++++++
 3 files changed, 28 insertions(+), 2 deletions(-)
---
diff --git a/providers/jdbc/Makefile.am b/providers/jdbc/Makefile.am
index 4883120..1a95f73 100644
--- a/providers/jdbc/Makefile.am
+++ b/providers/jdbc/Makefile.am
@@ -80,7 +80,8 @@ jdbcprov_sources = \
        provider.java \
        meta.java \
        derby.java \
-       h2.java
+       h2.java \
+       sqlserver.java
 jdbcprov_classes = GdaJConnection.class
 
 jdbcprovdir = $(providerdir)
diff --git a/providers/jdbc/provider.java b/providers/jdbc/provider.java
index b3b194d..9634890 100644
--- a/providers/jdbc/provider.java
+++ b/providers/jdbc/provider.java
@@ -246,7 +246,21 @@ class GdaJConnection {
                                        catch (Exception e1) {
                                                // nothing
                                        }
-                               }                              
+                               }
+                               else if (driver.contains ("sqlserver") ||
+                                        driver.contains ("com.ashna.jturbo.driver.Driver") ||
+                                        driver.contains ("com.inet.tds.TdsDriver")) {
+                                       try {
+                                               name = "sqlserverMeta";
+                                               Class<?> r = Class.forName (name);
+                                               java.lang.reflect.Constructor c =
+                                                       r.getConstructor (new Class [] {Class.forName 
("java.sql.Connection")});
+                                               jmeta = (GdaJMeta) c.newInstance (new Object [] {cnc});
+                                       }
+                                       catch (Exception e1) {
+                                               // nothing
+                                       }
+                               }
                        }
                        if (jmeta == null)
                                jmeta = new GdaJMeta (cnc);
diff --git a/providers/jdbc/sqlserver.java b/providers/jdbc/sqlserver.java
new file mode 100644
index 0000000..4e8c111
--- /dev/null
+++ b/providers/jdbc/sqlserver.java
@@ -0,0 +1,11 @@
+import java.sql.*;
+
+// define the current schema as being "dbo"
+
+class sqlserverMeta extends GdaJMeta {
+       public sqlserverMeta (Connection cnc) throws Exception {
+               super (cnc);
+               schemaAddCurrent ("dbo");
+       }
+}
+


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]