Page 1 of 1

Verbindung zu DB2

PostPosted: Tue Oct 19, 2010 9:59 am
by iferle
Hallo. Ich möchte eine Verbindung zu einer DB2-Datenbank über JDBC (Type4) realisieren. Ich habe dazu die Tabelle der "FirstApplication" in einer DB2-Datenbank angelegt (im Schema der AnmeldeID) und ein paar Beispieldaten eingegeben. Dann habe ich in der Session.java das DBAccess-Objekt auf DBDB2Access() umgebogen und die URL im DB2-Format (jdbc:db2://server:port/dbName) angegeben. Wenn ich das Logging für das Package com.sibvisions.rad.persist.level einschalte und die Applikation starte, sehe ich:
Code: Select all
19.10.2010 09:50:31 [ FINE        ] getMetaData(SELECT * FROM CONTACTS WHERE  1=2 ) in 78ms                                              com.sibvisions.rad.persist.jdbc.DBAccess getMetaData (Line: 1728)
19.10.2010 09:50:31 [ FINE        ] com.sibvisions.rad.persist.jdbc.DBAccess getMetaData (Line: 239)
                                    getMetaData(SELECT * FROM CONTACTS WHERE 1=2[ColumnDefinition ::[ID],Label=ID,Type=java.math.BigDecimal,Nullable=false,Precision=10,Scale=0,Signed=true,bWriteable=true,bPrimaryKey=false,bAutoIncrement=true, ColumnDefinition ::[FIRSTNAME],Label=FIRSTNAME,Type=java.lang.String,Nullable=false,Precision=200,Scale=0,Signed=false,bWriteable=true,bPrimaryKey=false,bAutoIncrement=false, ColumnDefinition ::[LASTNAME],Label=LASTNAME,Type=java.lang.String,Nullable=false,Precision=200,Scale=0,Signed=false,bWriteable=true,bPrimaryKey=false,bAutoIncrement=false, ColumnDefinition ::[BIRTHDAY],Label=BIRTHDAY,Type=java.sql.Timestamp,Nullable=true,Precision=0,Scale=0,Signed=false,bWriteable=true,bPrimaryKey=false,bAutoIncrement=false, ColumnDefinition ::[STREET],Label=STREET,Type=java.lang.String,Nullable=true,Precision=200,Scale=0,Signed=false,bWriteable=true,bPrimaryKey=false,bAutoIncrement=false, ColumnDefinition ::[NR],Label=NR,Type=java.lang.String,Nullable=true,Precision=200,Scale=0,Signed=false,bWriteable=true,bPrimaryKey=false,bAutoIncrement=false, ColumnDefinition ::[ZIP],Label=ZIP,Type=java.lang.String,Nullable=true,Precision=5,Scale=0,Signed=false,bWriteable=true,bPrimaryKey=false,bAutoIncrement=false, ColumnDefinition ::[TOWN],Label=TOWN,Type=java.lang.String,Nullable=true,Precision=200,Scale=0,Signed=false,bWriteable=true,bPrimaryKey=false,bAutoIncrement=false],...) determine write columns in 0ms

19.10.2010 09:50:32 [ FINE        ] select(SELECT * FROM CONTACTS,...) in 0ms                                                            com.sibvisions.rad.persist.jdbc.DBAccess fetch (Line: 449)


Die DBEditFrame mit den Kontakten bleibt aber leer,auch die ermittelten Metadaten auch nicht angezeigt (Spaltennamen).
Was mache ich falsch?

Re: Verbindung zu DB2

PostPosted: Tue Oct 19, 2010 4:14 pm
by Support@SIB
Wir haben die Anwendung mit einer DB2 Datenbank getestet und die Tabelle wurde wie erwartet dargestellt.

Unsere Tabellendefinition (Schema: TEST):

Code: Select all
create table TEST.CONTACTS
(
  ID            decimal(18) NOT NULL GENERATED BY DEFAULT  AS IDENTITY,
  FIRSTNAME     VARCHAR(200) not null,
  LASTNAME      VARCHAR(200) not null,
  BIRTHDAY      TIMESTAMP,
  STREET        VARCHAR(200),
  NR            VARCHAR(200),
  ZIP           VARCHAR(4),
  TOWN          VARCHAR(200)
);

INSERT INTO TEST.CONTACTS (ID, FIRSTNAME, LASTNAME, BIRTHDAY, STREET, NR, ZIP, TOWN) VALUES (1, 'Johann', 'Müller', '1947-03-12', 'Berggasse', 12, 2610, 'Alpstadt');
INSERT INTO TEST.CONTACTS (ID, FIRSTNAME, LASTNAME, BIRTHDAY, STREET, NR, ZIP, TOWN) VALUES (2, 'Leona', 'Sommer', '1982-06-01', 'Landstrasse', 29, 1020, 'Wien');


Unsere DB Verbindung:

Code: Select all
dba = new DB2DBAccess();         
dba.setUrl("jdbc:db2://db2vm:50000/TESTDB");
//bzw. dba = DBAccess.getDBAccess("jdbc:db2://db2vm:50000/TESTDB");

dba.setUsername("test");
dba.setPassword("test");
dba.open();


Screenshot unseres Tests:

firstapp.png
firstapp.png (26.44 KiB) Viewed 5399 times



Um das Problem näher zu analysieren, wäre das Eclipse Projekt (als zip) hilfreich und ggf. das DB Statement für die Tabelle, falls sich dieses von unserer Definition unterscheidet.

Re: Verbindung zu DB2

PostPosted: Thu Oct 21, 2010 11:38 am
by Support@SIB
Für den Test wurden folgende Versionen verwendet:

Code: Select all
JVx: 0.8
DB2: 9.7.1
JDBC Treiber (db2jcc.jar): 3.58.82

In Ihrem Log ist zu sehen, daß der Datenbankzugriff ebenfalls problemlos verlief. Die Meta-Daten wurden erfolgreich ausgelesen und das nachfolgende fetch wurde auch ohne Probleme durchgeführt.