Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Datenbanken (Sybase) dringende Hilfe erbeten

1 view
Skip to first unread message

Heike Kranich

unread,
Mar 4, 2002, 9:42:38 AM3/4/02
to
Hallo Java Experten,

ich versuche mich gerade in der Einarbeitung mit JDBC und habe mir dazu
einige Bücher aus der Bibliothek entliehen z.B.: das schon etwas betagte
"Datenbankprogrammierung mit JDBC in 21 Tagen" von 1997. Das Buch ist
leicht nachvollziehbar wie andere auch. Nur leider wird nicht richtig
darauf eingegangen (in anderen Büchern auch nicht so recht) wie man das
Ganze nun zum Laufen bringt.
In obigen Buch "verwenden sie dbAnywhere JDBC von Symantec und die
relationale Datenbank SQL Anywhere von Sybase".

Leider ist die Datenbank nicht mit auf der CD zum Buch drauf. Ich habe
mir deshalb die über 100MB große Trial Anwendung Sybase SQL Anywhere 7
aus dem Internt geladen (enthält unter anderem Sybase Central 4) in der
Hoffnung, dass es das richtige ist.
Installiert habe ich es.

Die Java Programme bekomme ich leider nicht zum Laufen.
Nun meine Fragen.

1.) Für die Beispiele in dem Buch brauche ich die auf der Cd befindliche
Datenbank jdbc.db. Sybase kann db Dateien verarbeiten aber wie und wo
öffne ich in obigen Produkt die Datenbank, nur damit ich sie mir mal
anschauen kann (den Inhalt)?

2.)
Damit die Java Beispiel laufen muß ich doch die Datenbank im Hintergrund
laufen haben oder?
Wie mache ich das unter Windows 2000?

3.)
Was muß ich an untenstehenden Programm (gibt Spaltennamen aus) z.B.
ändern um es mit der Datenbank kompatibel zu machen?

Wie gesagt die JDBC Befehle sind mir schon klar, aber leider nicht das
drumherum auf das nie eingegangen wird.

Ich kenne mich mir Sybase überhaupt nicht aus ist das Dumme.
Die Abbildungen stimmen mit dem vom Buch auch nur noch wenig überein.
Manches finde ich gar nichtz. .B. Wie man Spalten in der Datenbank in
Sybase hinzufügt (ohne Java) oder wie man eine Datenbank mit z.B. 3
Spalten anlegt mit Variablentypen etc..

Für Hilfe wäre ich äußerst dankbar, mit freundlichen Grüßen Heike

Codebeispiel:


import java.awt.*;
import java.util.*;
import java.sql.*;
// import symjava.sql.*;

public class ColumnExample extends Frame {
public ColumnExample () {
super();
this.resize(300, 300);

TextArea t = new TextArea(25,80);
this.add("Center", t);

Driver driver;
Connection connection;
String dbURL = "jdbc:dbaw://localhost:8889/Watcom/JDBC/JDBC";
Properties p = new Properties();
p.put("user", "dba");
p.put("password", "sql");

try {
String driverName = "symantec.itools.db.jdbc.Driver";
driver = (Driver)Class.forName(driverName).newInstance();
connection = driver.connect(dbURL, p);
DatabaseMetaData db = connection.getMetaData();
ResultSet columns = db.getColumns("","DBA","tEmployee","");
String s = "";
while (columns.next()) {
s += columns.getString(4) + "\n";
}
t.setText(s);
}
catch (SQLException e) {}
catch (Exception e) {}
this.show ();
}
public static void main (String args[]) {
ColumnExample app = new ColumnExample();
}
}

Heike Kranich

unread,
Mar 4, 2002, 10:15:22 AM3/4/02
to
Der Datenbanktreiber fehlt mir ja von Symantec auch noch. Den finde ich aber
nicht auf deren Webseite. Zum K....


Susanne Klemm

unread,
Mar 4, 2002, 10:29:42 AM3/4/02
to
Hallo Heike

Ist ursprünglich als PM gedacht, aber deine E-Mailadresse "geht nicht".
Schau mal, ob du dich da nicht vertippt hast.

"Heike Kranich" <Heike....@web.de> schrieb im Newsbeitrag
news:3C838F8A...@web.de...


> Der Datenbanktreiber fehlt mir ja von Symantec auch noch. Den finde ich
aber
> nicht auf deren Webseite. Zum K....
>

Geht es dir nur darum, mit Datenbanken zu arbeiten oder direkt um Sysbase?
Bei Sysbase könnte ich dir nicht helfen, aber zum Einstieg würde ich eh eine
Access-Datenbank ampfehlen. Die kannst du dir selbst einfach anlegen und die
jdbc-Treiber sind bei win 2000 schon installiert.

Wenn du willst, kann ich dir mal ein bißchen Code von mir schicken. Halt wie
man sich auf eine Datenbank verbindet und einfach Aktionen vornimmt.

Ciao

Susanne

Michael Schmidt

unread,
Mar 4, 2002, 10:58:41 AM3/4/02
to
Heike Kranich wrote:

> Hallo Java Experten,
>
> ich versuche mich gerade in der Einarbeitung mit JDBC und habe mir dazu
> einige Bücher aus der Bibliothek entliehen z.B.: das schon etwas betagte
> "Datenbankprogrammierung mit JDBC in 21 Tagen" von 1997. Das Buch ist
> leicht nachvollziehbar wie andere auch. Nur leider wird nicht richtig
> darauf eingegangen (in anderen Büchern auch nicht so recht) wie man das
> Ganze nun zum Laufen bringt.
> In obigen Buch "verwenden sie dbAnywhere JDBC von Symantec und die
> relationale Datenbank SQL Anywhere von Sybase".
>
> Leider ist die Datenbank nicht mit auf der CD zum Buch drauf. Ich habe
> mir deshalb die über 100MB große Trial Anwendung Sybase SQL Anywhere 7
> aus dem Internt geladen (enthält unter anderem Sybase Central 4) in der
> Hoffnung, dass es das richtige ist.
> Installiert habe ich es.
>
> Die Java Programme bekomme ich leider nicht zum Laufen.
> Nun meine Fragen.
>
> 1.) Für die Beispiele in dem Buch brauche ich die auf der Cd befindliche
> Datenbank jdbc.db. Sybase kann db Dateien verarbeiten aber wie und wo
> öffne ich in obigen Produkt die Datenbank, nur damit ich sie mir mal
> anschauen kann (den Inhalt)?
>

Um mit JDBC auf Sybase zuzugreifen, lade dir gleich die richtigen
Treiber von der Sybase-HP. Stichwort JConnect.

Da sind dann auch diverse SQL-Tools dabei, die dir helfen, sich auf der
Datenbank umzusehen.

Ansonsten solltest du über Sybase Central in der Lage sein, die DB zu
starten.

Micha

--
Homepage & FAQ von de.comp.lang.java: http://www.dclj.de

Heike Kranich

unread,
Mar 4, 2002, 11:48:38 AM3/4/02
to
Danke !

Hast du auch eine Beispielanwendung die den benutzt?

Linda Radecke

unread,
Mar 4, 2002, 2:08:30 PM3/4/02
to

Heike Kranich wrote:
[...]

> Leider ist die Datenbank nicht mit auf der CD zum Buch drauf. Ich habe
> mir deshalb die über 100MB große Trial Anwendung Sybase SQL Anywhere 7
> aus dem Internt geladen (enthält unter anderem Sybase Central 4) in der
> Hoffnung, dass es das richtige ist.
> Installiert habe ich es.

> Die Java Programme bekomme ich leider nicht zum Laufen.
> Nun meine Fragen.

> 1.) Für die Beispiele in dem Buch brauche ich die auf der Cd befindliche
> Datenbank jdbc.db. Sybase kann db Dateien verarbeiten aber wie und wo
> öffne ich in obigen Produkt die Datenbank, nur damit ich sie mir mal
> anschauen kann (den Inhalt)?

Via Sybase Central, wie schon gesagt wurde.

> 2.)
> Damit die Java Beispiel laufen muß ich doch die Datenbank im Hintergrund
> laufen haben oder?
> Wie mache ich das unter Windows 2000?

Einfach starten, aber das musst du bei der Sybase nicht
unbedingt, im Gegensatz bspw. zum MS SQL-Server.


> 3.)
> Was muß ich an untenstehenden Programm (gibt Spaltennamen aus) z.B.
> ändern um es mit der Datenbank kompatibel zu machen?

Ohne das Beispiel zu kennen, probier doch mal:

ResultSet rscol = db.getColumns(null, null, "tEmployee", "%");

while (rscol.next()) {
String colname = rscol.getString("COLUMN_NAME");

System.out.println("Column: " + colname)
}

> Wie gesagt die JDBC Befehle sind mir schon klar, aber leider nicht das
> drumherum auf das nie eingegangen wird.

> Ich kenne mich mir Sybase überhaupt nicht aus ist das Dumme.
> Die Abbildungen stimmen mit dem vom Buch auch nur noch wenig überein.
> Manches finde ich gar nichtz. .B. Wie man Spalten in der Datenbank in
> Sybase hinzufügt (ohne Java) oder wie man eine Datenbank mit z.B. 3
> Spalten anlegt mit Variablentypen etc..

Du meinst eine Tablle mit drei Spalten, nehme ich an, nicht eine
Datenbank, du solltest das in der Hilfe finden, ansonsten ist es
einigermassen selbsterklaerend. Ein paar einfache Beispiele hab
ich auch auf meiner WebSite, die laufen auf MS SQL-Server und
Sybase (jedenfalls bei mir)


Linda
--
Within it was a darker, indistinct shape, which wavered and . ' .
changed even as they watched.And all the time there was the -= * =-
high, brain-curdling whine of a huge magical field '/. '
Terry Pratchett, The Color Of Magic _____ /


Heike Kranich

unread,
Mar 4, 2002, 5:24:21 PM3/4/02
to
Guten Abend,

>
> > 1.) Für die Beispiele in dem Buch brauche ich die auf der Cd befindliche
> > Datenbank jdbc.db. Sybase kann db Dateien verarbeiten aber wie und wo
> > öffne ich in obigen Produkt die Datenbank, nur damit ich sie mir mal
> > anschauen kann (den Inhalt)?
>
> Via Sybase Central, wie schon gesagt wurde.

OK, das habe ich nun wenigstens hinbekommen. Irgendwie habe ich mir die Sache
aber komfortabler vorgestellt (schließlich ist das DIng ganz schön groß).
Um den Inhalt der Tabelle des Buches anzuzeigen muß man unter Dienstprogramme,
Interactice SQL öffnen, noch die SQL Befehle eingeben.
Ich dachte da gibt es auch was grafisches zur einfachen Auswahl.
Aber ein Punkt für Datenbank oder Tab. anzeigen fehlt.

>
>
> > 2.)
> > Damit die Java Beispiel laufen muß ich doch die Datenbank im Hintergrund
> > laufen haben oder?
> > Wie mache ich das unter Windows 2000?
>
> Einfach starten, aber das musst du bei der Sybase nicht
> unbedingt, im Gegensatz bspw. zum MS SQL-Server.
>

Wieso nicht? Gibt es den MS SQL Server in einer kostenlosen Windows Version?

3.)
er hat schon Probleme den Treiber zu finden in folgendem Miniprogramm.

import java.sql.*;
import com.sybase.jdbcx.SybDriver;

public class CheckURL
{
public CheckURL ()
{
try
{

SybDriver sybDriver =
(SybDriver)Class.forName("com.sybase.jdbc.SybDriver").newInstance(); // hier
schon Schluß === catch Block
sybDriver.setVersion(com.sybase.jdbcx.SybDriver.VERSION_4);
DriverManager.registerDriver(sybDriver);

String dbURL = "jdbc:dbaw://localhost:8889/WATCOM/JDBC/JDBC"; // Was muß
hier genau stehen?

// Check whether Driver can connect to URL
if (sybDriver.acceptsURL(dbURL))
{
System.out.println("URL is valid");
}
else
{
System.out.println("URL is not valid");
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

public static void main (String args[])
{

CheckURL app = new CheckURL();
}
}


Folgende Fehlermeldung erscheint:
java.lang.ClassNotFoundException: com.sybase.jdbc.SybDriver

Ich habe es genausogemacht wie in der dt. pdf Datei und der html Hilfe zu
Sybase erläutert.
Die Bibliotheken habe ich auch in mein Projekt eingebunden.
Die obige importierte findet er auch tadellos. Wieso ist der Treiber einmal
jdbc und einmal jdbcx?

4.)
Dann habe ich mal deine tolle Webseite studiert und die Bsp. versucht. Die
gehen leider auch nicht.
Zum Bsp. DBSybase. Ich habe dazu unter Start/Programme ... Personal Server
Beispieldatenbank
bei aktivierter Netzwerkverbindung gestartet. Jetzt habe ich neben der Ohr das
"asademo" Symbol also läuft
sie im Hintergrund.
Ausschnitt der Meldung (Schluß):

Datenbank "asademo" (asademo.db) gestartet am/um Montag, 04. März 2002 22:57
Datenbankserver gestartet am/um Montag, 04. März 2002 22:57
Start der NamedPipes-Verbindung wird versucht ...
NamedPipes Verbindung erfolgreich gestartet
Start der TCPIP -Verbindung wird versucht ...
TDS (TCPIP) Verbindung erfolgreich gestartet
Anforderungen werden jetzt akzeptiert

Im Java Programm kommt nach dem Start folgende Fehlermeldung:
Timestamp: 2002-03-04 23:19:08.226
java.lang.NullPointerException
at datenbankversuche.DBSybase.printDBInfo(DBSybase.java:59)
at datenbankversuche.DBSybase.<init>(DBSybase.java:26)
at datenbankversuche.DBSybase.main(DBSybase.java:232)
Exception in thread "main"

In der Zeile: DatabaseMetaData basemeta = con.getMetaData(); hängt er sich
schon auf.

Ich bin total ratlos jetzt. Vielleicht kann mir noch mal jemand etwas
weiterhelfen.
Alleine packe ich das leider nicht, danke Heike


Linda Radecke

unread,
Mar 5, 2002, 3:14:07 AM3/5/02
to

Heike Kranich wrote:

> OK, das habe ich nun wenigstens hinbekommen. Irgendwie habe ich mir die Sache
> aber komfortabler vorgestellt (schließlich ist das DIng ganz schön groß).
> Um den Inhalt der Tabelle des Buches anzuzeigen muß man unter Dienstprogramme,
> Interactice SQL öffnen, noch die SQL Befehle eingeben.
> Ich dachte da gibt es auch was grafisches zur einfachen Auswahl.

Nein, das gibt es (zum Glueck, finde ich) da nicht. Generell halte ich
es fuer eine gute Idee, erst mit RDBMS und SQL naeher vertraut zu werden.

> Wieso nicht? Gibt es den MS SQL Server in einer kostenlosen Windows Version?

Nein (, jedenfalls nicht dass ich wuesste).


> 3.)
> er hat schon Probleme den Treiber zu finden in folgendem Miniprogramm.

Du kannst die Sybase testweise auch mit der Bridge verwenden,
um das erstmal auszuprobieren.


> String dbURL = "jdbc:dbaw://localhost:8889/WATCOM/JDBC/JDBC"; // Was muß
> hier genau stehen?

Das haengt von deinem System ab. Mit SQL-Server mache ich das so:

Properties p = new Properties();

p.put("user", "sa");
p.put("password", "plato17");

con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://LINDA-A7AGPELGN:1051; databasename=master", p);


> Folgende Fehlermeldung erscheint:
> java.lang.ClassNotFoundException: com.sybase.jdbc.SybDriver

Wo hast du denn den Treiber? Ich hab das JAR in meinem
ext-dir platziert, da wird es automatisch gefunden.

> Datenbank "asademo" (asademo.db) gestartet am/um Montag, 04. März 2002 22:57
> Datenbankserver gestartet am/um Montag, 04. März 2002 22:57
> Start der NamedPipes-Verbindung wird versucht ...
> NamedPipes Verbindung erfolgreich gestartet
> Start der TCPIP -Verbindung wird versucht ...
> TDS (TCPIP) Verbindung erfolgreich gestartet
> Anforderungen werden jetzt akzeptiert

> Im Java Programm kommt nach dem Start folgende Fehlermeldung:
> Timestamp: 2002-03-04 23:19:08.226
> java.lang.NullPointerException
> at datenbankversuche.DBSybase.printDBInfo(DBSybase.java:59)
> at datenbankversuche.DBSybase.<init>(DBSybase.java:26)
> at datenbankversuche.DBSybase.main(DBSybase.java:232)
> Exception in thread "main"

Naja, bevor du ein SELECT auf eine Tabelle machst, musst du erstmal
eine mit CREATE erstellen. Falls du nicht sicher bist bist, ob es am
Treiber liegt, kannst du ja erstmal die Bridge nehmen zum Testen, ob
du die DB ueberhaupt ansprechen kannst.


Linda
--
(=)
/ li...@jalice.ch - http://www.jalice.net
(=)
/ l.ra...@hswzfh.ch - http://www.hswzfh.ch
(=)


Michael Schmidt

unread,
Mar 5, 2002, 4:39:54 AM3/5/02
to
Heike Kranich wrote:

> Guten Abend,
>
>
>>>1.) Für die Beispiele in dem Buch brauche ich die auf der Cd befindliche
>>>Datenbank jdbc.db. Sybase kann db Dateien verarbeiten aber wie und wo
>>>öffne ich in obigen Produkt die Datenbank, nur damit ich sie mir mal
>>>anschauen kann (den Inhalt)?
>>>
>>Via Sybase Central, wie schon gesagt wurde.
>>
>
> OK, das habe ich nun wenigstens hinbekommen. Irgendwie habe ich mir die Sache
> aber komfortabler vorgestellt (schließlich ist das DIng ganz schön groß).
> Um den Inhalt der Tabelle des Buches anzuzeigen muß man unter Dienstprogramme,
> Interactice SQL öffnen, noch die SQL Befehle eingeben.
> Ich dachte da gibt es auch was grafisches zur einfachen Auswahl.
> Aber ein Punkt für Datenbank oder Tab. anzeigen fehlt.
>


Um dir nur mal die Tabellen anzeigen zu lassen mittels JDBC-Treiber, versuch mal SQUIRREL-SQL von sourceforge.net.

Ansonsten ist ein spezielles Javaprogramm, das auch Transact-SQL
verarbeitet, bei JConnect5.2 dabei.

> 3.)
> er hat schon Probleme den Treiber zu finden in folgendem Miniprogramm.
>
> import java.sql.*;
> import com.sybase.jdbcx.SybDriver;
>
> public class CheckURL
> {
> public CheckURL ()
> {
> try
> {
>
> SybDriver sybDriver =
> (SybDriver)Class.forName("com.sybase.jdbc.SybDriver").newInstance(); // hier
> schon Schluß === catch Block
> sybDriver.setVersion(com.sybase.jdbcx.SybDriver.VERSION_4);


Nimm lieber Version 5, die ist JDBC2-konform.


> DriverManager.registerDriver(sybDriver);
>
> String dbURL = "jdbc:dbaw://localhost:8889/WATCOM/JDBC/JDBC"; // Was muß
> hier genau stehen?
>


Das steht in der Doku zum JDBC-Treiber. Nach meiner Erinnerung sollte es
"jdbc:sybase://rechner:host/dbname" Die Auswahl der konkreten DB erfolgt
dann über das SQL-Kommando "use"

Vor dem Benutzen des Sybase-JDBC-Treibers müssen noch diverse Scripte
auf der DB ausgeführt werden. Dieser Treiber ist für mehrere DB geeignet
und braucht deshalb spezifische Übersetzungstabellen.


>
> Ich habe es genausogemacht wie in der dt. pdf Datei und der html Hilfe zu
> Sybase erläutert.
> Die Bibliotheken habe ich auch in mein Projekt eingebunden.
> Die obige importierte findet er auch tadellos. Wieso ist der Treiber einmal
> jdbc und einmal jdbcx?
>

Das hängt nun wirklich vom Treiberhersteller ab, wie er seine Packages
benennt. Der JDBC-2 Treiber von Sybase heißt AFAIR
com.sybase.jdbc2.jdbc.SybDriver oder so.

Heike Kranich

unread,
Mar 5, 2002, 5:49:40 AM3/5/02
to
>
> > OK, das habe ich nun wenigstens hinbekommen. Irgendwie habe ich mir die Sache
> > aber komfortabler vorgestellt (schließlich ist das DIng ganz schön groß).
> > Um den Inhalt der Tabelle des Buches anzuzeigen muß man unter Dienstprogramme,
> > Interactice SQL öffnen, noch die SQL Befehle eingeben.
> > Ich dachte da gibt es auch was grafisches zur einfachen Auswahl.
>
> Nein, das gibt es (zum Glueck, finde ich) da nicht. Generell halte ich
> es fuer eine gute Idee, erst mit RDBMS und SQL naeher vertraut zu werden.
>

Da scheint es was zu geben namnes Powerdesigner, ist aber in der Trial Version nicht
dabei.

> > Folgende Fehlermeldung erscheint:
> > java.lang.ClassNotFoundException: com.sybase.jdbc.SybDriver
>
> Wo hast du denn den Treiber? Ich hab das JAR in meinem
> ext-dir platziert, da wird es automatisch gefunden.
>

Ich habe es jetzt in das JBUilder\lib\ext Verzeichnis getan. Erst ging es nicht,
wegen vieleicht falscher version. Dann habe ich eine andere Jar mit den Driver
hineinkopiert und er
findet nun zumindest den Treiber.
In dem Verz. war schon folgende readme.txt:
Dieses Verzeichnis darf nicht entfernt werden. Dateien, die
in diesem Verzeichnis abgelegt werden, enthalten OpenTools-
Erweiterungen, die bei Programmstart von JBuilder automatisch
geladen werden.
Also ist es sicherlich das richtige für den JBuilder.

Damit hast du mir schon etwas weitergeholfen. Danke aber dafür stehe ich jetzt vor
dem nächsten Problem (siehe anderes Posting).

Heike Kranich

unread,
Mar 5, 2002, 5:58:31 AM3/5/02
to
>
>
> Nimm lieber Version 5, die ist JDBC2-konform.

habe ich befolgt.

>
>
> > DriverManager.registerDriver(sybDriver);
> >
> > String dbURL = "jdbc:dbaw://localhost:8889/WATCOM/JDBC/JDBC"; // Was muß
> > hier genau stehen?
> >
>
> Das steht in der Doku zum JDBC-Treiber. Nach meiner Erinnerung sollte es
> "jdbc:sybase://rechner:host/dbname" Die Auswahl der konkreten DB erfolgt
> dann über das SQL-Kommando "use"
>

MMh. Habe ich nachgelesen. Und eingearbeitet. Die Datenbankurl akzeptiert er zumindest nun auch.
Muß ich bei der Datenbankurl nicht die Adresse mit angeben. Sie ist bei mir unter e:\java\database\jdbc.db

Nachfolgend mein kleines Beispielprogramm:

import java.sql.*;
import java.util.*;
import com.sybase.jdbcx.SybDriver;


public class CheckURL
{
public CheckURL ()
{

Properties probs = new Properties();
probs.put("user","dba");
probs.put("password","sql");
try
{
SybDriver sybDriver = (SybDriver)Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance();
sybDriver.setVersion(com.sybase.jdbcx.SybDriver.VERSION_5);
DriverManager.registerDriver(sybDriver);

String dbURL = "jdbc:sybase:Tds:localhost:8889";


// Check whether Driver can connect to URL

if (sybDriver.acceptsURL(dbURL)) // bzw. nur driver
{
System.out.println("URL is valid"); //bis hier hin nun OK
Connection c = sybDriver.connect(dbURL,probs); // will er nicht !!!!!!!!!!!!!!!!!!!!!


}
else
{
System.out.println("URL is not valid");
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

public static void main (String args[])
{
CheckURL app = new CheckURL();
}
}

Ich muß noch die Datenbank jetzt erstmal starten und laufen lassen. Also ich starte von Sybase dbsrv7.exe.
Bei Durchsuchen wähle ich die Datenbank unter e:\java\database\jdbc.db aus.
Servername lasse ich leer oder was soll da stehen? Dann mache ich OK.
Neben der Uhr habe ich jetzt das Symbol mit den Tooltip jdbc (war Name der Datenbank).

Wie bringe ich diese Angabe jetzt in mein Programm? Muß das nicht
"jdbc:sybase:Tds:localhost:8889 ?????" mit rein?


Wieso da das SQL Komando use?
Woher bekomme ich die Nummer 8889 oder so?


>
> Vor dem Benutzen des Sybase-JDBC-Treibers müssen noch diverse Scripte
> auf der DB ausgeführt werden. Dieser Treiber ist für mehrere DB geeignet
> und braucht deshalb spezifische Übersetzungstabellen.
>

???

Wäre echt nett, wenn mir noch mal jemand helfen könnte, danke Heike

Heike Kranich

unread,
Mar 5, 2002, 6:00:46 AM3/5/02
to

Falls das hilft folgende Meldung erscheint:
URL is valid
java.sql.SQLException: JZ006: IOException: java.net.ConnectException: Connection refused: no further
information wurde abgefangen
at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:487)
at com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead(ErrorMessage.java:723)
...........

Stephan Menzel

unread,
Mar 5, 2002, 6:08:07 AM3/5/02
to
Heike Kranich <Heike....@web.de> wrote:


Hallo Heike, moin dclj!

>............

Mir scheint, Du hast einen flahcsen Port angegeben. Das ist die 8889, nach der
Du vorhin fragtest.
Deine DB muss einen aktuellen Port zur Verfuegung stellen, mit dem sich der
Treiber verbinden kann.


Schau mal in die Konfigurationsdatei Deiner DB was da bei "bind" oder
"interface" oder so aehnlich steht. Da muesstest Du dann entweder 8889 angeben
oder eben dem Treiber sagen, wo die DB nun lauscht.


Das "use" steht uebrigens IIRC bei Sybase fuer "benutze folgende Datenbank..."


Die besten Gruesse...


Stephan

--
__________________________________________________________
News suchen, lesen, schreiben mit http://newsgroups.web.de

Heike Kranich

unread,
Mar 5, 2002, 6:16:24 AM3/5/02
to
 

Schau mal in die Konfigurationsdatei Deiner DB was da bei "bind" oder
"interface" oder so aehnlich steht. Da muesstest Du dann entweder 8889 angeben
oder eben dem Treiber sagen, wo die DB nun lauscht.

 
iN DEM pROTOKOLL NACH DEM sTART DES sERVERS STEHT KEIN pORT UND BEI oPTIONEN FINDE ICH AUCH NICHTS:
 

Michael Schmidt

unread,
Mar 5, 2002, 6:42:37 AM3/5/02
to
Heike Kranich wrote:

>
> Nachfolgend mein kleines Beispielprogramm:
>
> import java.sql.*;
> import java.util.*;
> import com.sybase.jdbcx.SybDriver;


Diese Zeile kannst du dir sparen.


>
>
> public class CheckURL
> {
> public CheckURL ()
> {
> Properties probs = new Properties();
> probs.put("user","dba");
> probs.put("password","sql");
> try
> {
> SybDriver sybDriver = (SybDriver)Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance();


Hier geht es auch ohne newInstance und dann einfach:

Class driver = Class.forName("com.sybase.jdbc2.jdbc.SybDriver");

> sybDriver.setVersion(com.sybase.jdbcx.SybDriver.VERSION_5);
> DriverManager.registerDriver(sybDriver);


Diese beiden Zeile sind ebenfalls nichjt nötig, das Registrieren macht
der Class.ForName()-Aufruf


>
> String dbURL = "jdbc:sybase:Tds:localhost:8889";


Hinter den Port muß noch der Name des Sybase-SQL_servers. Den mußt du
beim Starten irgendwo angelegt haben, sieh mal in Sybase-Central.


> // Check whether Driver can connect to URL
> if (sybDriver.acceptsURL(dbURL)) // bzw. nur driver
> {
> System.out.println("URL is valid"); //bis hier hin nun OK
> Connection c = sybDriver.connect(dbURL,probs); // will er nicht !!!!!!!!!!!!!!!!!!!!!
> }

> Ich muß noch die Datenbank jetzt erstmal starten und laufen lassen. Also ich starte von Sybase dbsrv7.exe.
> Bei Durchsuchen wähle ich die Datenbank unter e:\java\database\jdbc.db aus.
> Servername lasse ich leer oder was soll da stehen? Dann mache ich OK.
> Neben der Uhr habe ich jetzt das Symbol mit den Tooltip jdbc (war Name der Datenbank).
>
> Wie bringe ich diese Angabe jetzt in mein Programm? Muß das nicht
> "jdbc:sybase:Tds:localhost:8889 ?????" mit rein?


Wie oben gesagt. Sybase lauscht auf einem bestimmten Port, der muß
bekannt sein. Und der Servername folgt noch.


>
>
> Wieso da das SQL Komando use?


Auf einem Sybase-Server ist es so, daß man sich auf den Server connected
und dann die DB auswählt, die man brauch, während man z.B. bei Oracle
auf die DB verbindet.

>>Vor dem Benutzen des Sybase-JDBC-Treibers müssen noch diverse Scripte
>>auf der DB ausgeführt werden. Dieser Treiber ist für mehrere DB geeignet
>>und braucht deshalb spezifische Übersetzungstabellen.
>>
>>
>
> ???


Naja, Doku lesen kann ich dir nicht abnehmen. Es ist schon eine Weile
her, daß ich Sybase benutzt habe und hier habe ich gerade keine zum Testen.

Das Einspielen der Scripts ist in der Doku zu JConnect ausfürhlich
beschrieben.

Linda Radecke

unread,
Mar 5, 2002, 7:56:01 AM3/5/02
to

Heike Kranich wrote:

> > Nein, das gibt es (zum Glueck, finde ich) da nicht. Generell halte ich
> > es fuer eine gute Idee, erst mit RDBMS und SQL naeher vertraut zu werden.
> >

> Da scheint es was zu geben namnes Powerdesigner, ist aber in der Trial Version nicht
> dabei.

Das ist von der HP aus downloadbar als Trial, ich kenne das aber
nicht persoenlich. Ich verwende Tools sowieso nur, wenn ich denn
unbedingt "muss", ich hab i.d.R. laenger, mich mit so etwas auch
vertraut zu machen, als es "von Hand" zu erstellen, es sei denn,
s waere wirklich ineffizient anders, und dann mag ich mich auch
nicht so abhaengig machen von einem bestimmten Tool.

> Ich habe es jetzt in das JBUilder\lib\ext Verzeichnis getan. Erst ging es nicht,
> wegen vieleicht falscher version. Dann habe ich eine andere Jar mit den Driver
> hineinkopiert und er
> findet nun zumindest den Treiber.
> In dem Verz. war schon folgende readme.txt:
> Dieses Verzeichnis darf nicht entfernt werden. Dateien, die
> in diesem Verzeichnis abgelegt werden, enthalten OpenTools-
> Erweiterungen, die bei Programmstart von JBuilder automatisch
> geladen werden.
> Also ist es sicherlich das richtige für den JBuilder.

Ah - gut, wenn es klappt.

> Damit hast du mir schon etwas weitergeholfen.

Michael kennt sie vermutlich noch besser, fuer mich war das die
erste "richtige DB(MS)", ich verwende aber hauptsaechlich jetzt
MS SQL-Server inzwischen, da wir den auch am Arbeitsplatz
im Einsatz haben, deshalb hab ich das jetzt nicht so im Kopf gerade.

> Danke aber dafür stehe ich jetzt vor
> dem nächsten Problem (siehe anderes Posting).

Wie die Anderen schon meinten, hast du sicher den Port falsch,
was steht denn bei dir als default-port? (TCP/IP-properties).
Das musst du dann verwenden. Bei mir ist es 1051, aber das nuetzt
dir ja nichts.:(

Heike Kranich

unread,
Mar 5, 2002, 8:00:08 AM3/5/02
to
>
> > Danke aber dafür stehe ich jetzt vor
> > dem nächsten Problem (siehe anderes Posting).
>
> Wie die Anderen schon meinten, hast du sicher den Port falsch,
> was steht denn bei dir als default-port? (TCP/IP-properties).
> Das musst du dann verwenden. Bei mir ist es 1051, aber das nuetzt
> dir ja nichts.:(
>
>

Wo finde ich denn das???

Linda Radecke

unread,
Mar 5, 2002, 8:16:18 AM3/5/02
to

Heike Kranich wrote:

> Wo finde ich denn das???

Ich hab keinen Zugriff auf eine Sybase momentan und leider laesst
mich mein Gedaechtnis hier etwas im Stich, steht das nicht in der
Doku? Bei mir hier steht das unter "Server Network Utility" und
dann TCP/IP - properties.

0 new messages