602SQL JDBC driver

Zde jsou všechny dostupné informace o JDBC driveru pro 602SQL server v. 9. Dotazy na 602SQL JDBC driver zodpoví hotline (hotline@software602.cz).

Kapitoty: novinky - základní informace - soubory ke stažení - příklady - známá omezení

Novinky 

16.3.2005
  • opravena metoda getColumnDisplaySize() z interface ResultSetMetaData, která pro některé typy vracela zápornou hodnotu; nyní vrací vždy kladnou hodnotu
30.10.2004
  • driver upraven pro 602SQL verze 9, mj. změněn název package, základní třídy driveru a formát URL pro připojení k datovému zdroji - viz Nápověda a další části tohoto dokumentu
30.10.2003
  • opravena nedostatečná synchronizace požadavků na SQL server ve vícevláknových aplikacích, která se projevovala "zamrznutím" JDBC driveru
31.7.2003
  • opraveno neuzavírání kurzoru při finalizaci ResultSetů
14.3.2003
  • opravena chyba v implementaci scrollable ResultSetu, která znemožňovala jeho používání, protože ResultSet vždy oznamoval, že neobsahuje žádné záznamy; forward-only ResultSet nebyl touto chybou postižen
11.2.2003
  • opraveno vytváření instance třídy Reader v implementaci interface Clob (metoda getCharacterStream tohoto rozhraní)
  • zprovozněno získávání výstupních parametrů typu CLOB a BLOB z CallableStatement pomocí metod getClob a getBlob
6.2.2003
  • opraveno posílání chybné délky sloupce typu řetězec SQL serveru, kvůli tomuto problému mohl padat SQL server
  • změněn název Properties obsahujících uživatelské jméno a heslo z "User" a "Password" na "user" a "password"; tyto Properties lze předat metodě DriverManager.getConnection()
    navíc pokud má property "user" prázdnou hodnotu, pro spojení se použije anonymní uživatel; dříve v této situaci nastal pád driveru
  • metoda getTables() z interface DatabaseMetaData vracela pro typ tabulek VIEW chybné údaje - nyní je to opraveno
  • metoda getPrimaryKeys() z interface DatabaseMetaData vyvolávala výjimku, když se zjišťovaly údaje o primárních klíčích v tabulce, která žádné primární klíče neměla - nyní je to opraveno
23.9.2002
  • změna subprotokolu v URL z "winbase" na "602sql8" - validní URL je např. jdbc:602sql8://vpecuch.software602.cz/moje_aplikace
21.8.2002
  • první vydání driveru pro 602SQL 8.0

Základní informace 

Instalace

Driver je dodáván zkompilovaný ve formě JAR archívu 602sql9-jdbc.jar (viz soubory ke stažení) obsahujícího *.class soubory.

Před instalací musí být na cílovém počítači nainstalováno Java 2 Standard Edition Runtime Environment (JRE). 602SQL server nemusí být na cílovém počítači nainstalován. Tento driver spolupracuje s JRE verze 1.3 a vyšší.

Soubor 602sql9-jdbc.jar je třeba zkopírovat do podadresáře lib\ext v adresáři, ve kterém je instalováno Java 2 Runtime Environment. Pokud je tento adresář např. c:\jre, pak je nutno daný soubor zkopírovat do adresáře c:\jre\lib\ext. Alternativně lze tento soubor zkopírovat do jakéhokoliv adresáře a tento soubor přidat do systémové proměnné CLASSPATH. Zde uvedené názvy adresářů platí pro systém Windows. V jiných operačních systémech je nutno použít názvy adresářů v nich platné.

Základní třída

Základní třída driveru je cz.Software602.SQL.JDBC.WBDriver. Tato třída implementuje rozhraní (interface) java.sql.Driver.

Číslo verze driveru

Aktuální verze driveru je 1.3 a je určena pro 602SQL verze 9.0 (i když s tímto driverem se lze připojovat také k 602SQL serverům verze 8.0 a 8.1).

Typ driveru

Driver je typu Native-protocol pure Java driver, tj. driver je celý napsán v programovacím jazyku Java a s SQL serverem komunikuje přes TCP/IP spojení proprietálním protokolem pro komunikaci mezi 602SQL serverem a jeho klientem.

Implementovaná verze JDBC

602SQL JDBC driver implementuje specifikaci JDBC verze 2.1 s omezeními danými specifickými vlastnosti 602SQL serveru a nepodporuje interface specifikované v JDBC Optional extensions (javax.sql).

Implementována jsou následující rozhraní z package java.sql: Driver, DatabaseMetaData, ResultSetMetaData, Connection, Statement, PreparedStatement, CallableStatement, ResultSet, Blob, Clob.

URL definující spojení na 602SQL server

Při otevírání spojení na SQL server se jako parametr předává URL, podle kterého hledá DriverManager vhodný JDBC driver, který je ochoten obsloužit požadavek. Formát URL, který akceptuje 602SQL JDBC driver je:

jdbc:602sql://hostname[:port]/aplikace

Kde "hostname" je název počítače (tj. buď IP adresa, nebo DNS jméno počítače) "port" je port na kterém je spuštěn 602SQL server a "aplikace" je název aplikace (v terminologii 602SQL), resp. katalog (v terminologii JDBC), se kterou chceme pracovat. Pokud není zadán port, pak se použije port 5001, na kterém se standardně spouští 602SQL server.

Příklady:

jdbc:602sql://jasper.kolej.mff.cuni.cz/TestApp
jdbc:602sql://192.168.2.163/esupport
jdbc:602sql://localhost:8001/wbdrive

Další informace je možné JDBC driveru předat v parametru Properties metody DriverManager.getConnection(), který obsahuje Name=Value hodnoty. Driver rozeznává dva řetězce:

Pokud není uživatel specifikován, připojí se 602SQL JDBC driver jako anonymní uživatel.

Pozor: 602SQL server, na který je vytvářeno spojení pomocí 602SQL JDBC driveru, musí umožňovat komunikaci s klienty pomocí protokolu TCP/IP, a to i v případě, že SQL server a aplikace využívající JDBC driver běží na stejném počítači!

Soubory ke stažení 

602sql9-jdbc.jar    JAR archív s 602SQL JDBC driverem pro 602SQL server v. 9

Instalace driveru do Sun ONE Studio (Forte For Java)

Sun ONE Studio je integrované vývojové prostředí pro vývoj aplikací v jazyku Java. Lze jej zdarma získat na adrese http://www.sun.com.

  1. Driver nainstalujte podle výše uvedeného popisu do JRE.
  2. Pokud je spuštěno Sun ONE Studio, pak jej restartovat (ukončit a znovu spustit).
  3. V okně Explorer zvolit záložku Runtime. Na této záložce zvolit větev Databases->Drivers. V kontextovém menu této větve zvolit příkaz Add driver. Objeví se dialog "Add JDBC Driver".
  4. V dialogu vyplnit údaje takto:
    Name: "602SQL 9.0"; případně lze zvolit nějaké jiné pojmenování JDBC driveru
    Driver: "cz.Software602.SQL.JDBCWBDriver"; zde je nutno zadat název třídy, která implementuje rozhraní java.sql.Driver
    Database URL prefix: "jdbc:602sql://<computer>:<port>/<catalog>"; při připojování ke konkrétní databázi je nutno místo závorek <..> vyplnit skutečné údaje, tj. Po stisknutí tlačítka OK se zaregistruje JDBC driver pro přístup k 602SQL serveru

Příklady 

Forward-only ResultSet

// nejdříve načteme základní třídu 602SQL JDBC driveru
// tím se driver zaregistruje u DriverManagera
Class.forName("cz.Software602.SQL9.JDBC.WBDriver");

// vytvoří se objekt Connection - spojení se jménem con
Connection con = DriverManager.getConnection(
        "jdbc:602sql://localhost/application",
        "myLogin", "myPassword");

// vytvoří se nový objekt Statement - příkaz se jménem stmt
Statement stmt = con.createStatement();

// vytvoří se nový objekt ResultSet - výsledek dotazu se jménem rs,
// jehož obsahem má být výsledek dotazu stmt, který má vybrat z tabulky
// Table1 hodnoty sloupečků a,b,c
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");

// v následujícím cyklu probíhá čtení hodnot z rs
while (rs.next())
{
        int x = rs.getInt("a");
        String s = rs.getString("b");
        float f = rs.getFloat("c");
        // a následuje zpracování načtených dat
}

Scrollable ResultSet

// nejdříve načteme základní třídu 602SQL JDBC driveru
// tím se driver zaregistruje u DriverManagera
Class.forName("cz.Software602.SQL.JDBC.WBDriver");

// vytvoří se objekt Connection - spojení se jménem con
Connection con = DriverManager.getConnection(
        "jdbc:602sql://localhost/application",
        "myLogin", "myPassword");

// vytvoří se nový objekt Statement - příkaz se jménem stmt
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

// vytvoří se nový objekt ResultSet - výsledek dotazu se jménem rs,
// jehož obsahem má být výsledek dotazu stmt, který má vybrat z tabulky
// Table1 hodnoty sloupečků a,b,c
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");

// rs nastavíme za poslední záznam
rs.afterLast();
// v následujícím cyklu probíhá čtení hodnot z rs, záznamy budeme číst v obráceném pořadí
while (rs.previous())
{
        int x = rs.getInt("a");
        String s = rs.getString("b");
        float f = rs.getFloat("c");
        // a následuje zpracování načtených dat
}

Známá omezení 

Tato omezení mohou být odstraněna v budoucích vydáních driveru.