soa
Goto Top

Über das Netzwerk auf Sybase DB zugreifen

Mit PHP auf Sybase 10 Datenbank verbinden

Hallo zusammen,

ich versuche schon seit längerem mich mit einer Sysbase System 10 DB zu verbinden.
Die DB ist im Netzwerk auf einem Server über einen bestimmten Port (beispielsweise
Port 1000 ) ansprechbar.

Nun versuche ich von einem Windows XP Rechner im Netzwerk, auf dem ein
Apache Web Server läuft eine verbindung herzustellen.

Ich habe auf dem Client keine Treiber installiert, auf dem Server sind ODBC treiber vorhanden


Habe versucht über System -> verwaltung -> Datenquellen (ODBC) ein
System DNS zu setzen.

Leider kann ich hier keien Port angeben oder Ähnliches-


Vielleicht ist es hier jemanden ein leichtes mir einige Tipps zu geben.


Viele Grüße

SOA

Content-ID: 83602

Url: https://administrator.de/contentid/83602

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

soa
soa 21.03.2008 um 11:54:29 Uhr
Goto Top
Vielleicht so. Ich versuche nun über Windows XP eine System DSN zu erstellen, mit der
ich gleich eine Verbindung zu dem Server erhalte. Beim Testen der DSN erhalte ich aber keine
Verbindung. Gibt es vielleicht dazu ein ausführlichen Tutorial?
Biber
Biber 21.03.2008 um 15:00:15 Uhr
Goto Top
Moin soa,

ich bekomme es nicht ganz auf die Reihe:
  • du hast auf dem Client KEINEN Sybase-ODBC-Treiber installiert?
  • und legst aber eine System-DSN an???

Mit was denn? "Nativer SQL-Server"?

Grüße
Biber
soa
soa 21.03.2008 um 21:30:06 Uhr
Goto Top
Ich kriege es selbst noch nict auf die Reiheface-smile
EInen Sybase ODBC treiber habe ich nicht auf dem Client. Wüßte nicht, wo ich
diesen herbekomme.

Ich will über Java oder PHP auf einen Sybase System 10 Server zugreifen.

Wenn ich z.B mit dem DB Vizualizer nun eine Connection erstelle, wird automatisch
eine DSN angelegt.

Das Problem dabei ist, dass zwar eine Verbindung hergestellt wird, jedoch keine
Datenkanken angesteuert werden können.

Mit JTDS funktioniert es auch nicht recht.

Zum Beispiel bekome ich diese Fehlermeldung:


[Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
Biber
Biber 22.03.2008 um 17:47:01 Uhr
Goto Top
Moin soa,

ich gebe zu, ich bin technologisch eventuell nicht mehr so ganz auf dem Laufenden.
Damals, als ich noch mit Datenbanken herumgealbert habe, war zum ODBC-Zugriff schon ein auf dem Client installierter Treiber (auf neudeutsch: eine DLL) nötig, um mehr mit einer Datenbank zu veranstalten als nach der Systemzeit zu fragen.

Hier habe ich ein Onlinebocck aus diesen guten alten Zeit ausgegraben: Sybase System 10 ODBC Reference Guide.

Funktionieren sollte dieser Weg auch heute noch...

Grüße
Biber
soa
soa 22.03.2008 um 19:27:43 Uhr
Goto Top
Hallo Biber,

danke für den Link face-smile

Also ich habe natürlich Treiber auf meinem Client.

1.
jTDS is an open source 100% pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server (6.5, 7, 2000 and 2005) and Sybase (10, 11, 12, 15).

2. JDBC ODBC Treiber

Jetzt hab ichs auch:

mit Version 1: jdbc:jtds:sybase://192.168.0.x:Port/DBase

Vielen Dank face-smile
Frohe Ostern...
Biber
Biber 23.03.2008 um 14:23:11 Uhr
Goto Top
Moin soa,

freut mich natürlich, dass Du es zum Fliegen gebracht hast.
Dennoch hat die Java-Variante (also über eine API und über über .RegisterDriver()) nur entfernt etwas mit dem Einrichteten einer Benutzer- oder System-DSN zu tun.

Eine DSN kannst Du nicht ohne installierte und registrierte ODBC-Clienttreiber einrichten, daher meine Verwunderung.

Aber what shalls.... - Problem ist gelöst.

Frohe Ostern.
Biber
soa
soa 23.03.2008 um 17:18:40 Uhr
Goto Top
Hallo Biber,

danke noch einmal für dein Statement. Das wußte ich z:B. nicht. Hast du vielleicht auch
hierfür noch eine gute Quelle, die weiter in diese Thematik einführt.

Ich würde mir dahingehend noch gerne etwas mehr Wissen aneignen.

Dir auch ein frohes Osterfest.

Grüße
SOA
Biber
Biber 23.03.2008 um 23:37:15 Uhr
Goto Top
Moin soa,

dann ein kurzer Versuch der Gegenüberstellung ohne Gewähr und ohne Anspruch auf Vollständigkeit.

ODBC und JDBC haben zwar die gleichen Wurzeln und den gleichen Grundgedanken (physikalisch unterschiedliche DBRMS-Implementierungen über eine einheitliche Schnittstelle abzufackeln), aber es gibt auch tendenzielle Unterschiede.

ODBC-Treiber
  • M$'s Weg. Und auch der ältere.
  • Dazu werden DB-spezifische Treiber(-bibliotheken), fast immer vom DB-Hersteller höchstselbst bereitgestellt.
  • Das sind meist in C geschriebene DLLs, die installiert+registriert werden müssen und vergleichsweise tief ins Innenleben des Betriebssystems eingreifen
  • Deshalb unter neueren Windowsversionen immer hohe/Administratorrechte nötig
  • sind betriebssystem/M$-Versionsabhängig, auf eine spezielle DB-Version bezogen
  • und es gibt es immer vom DB-Hersteller und/oder stabil und/oder rechtzeitig. Meist ist nur einer der drei Punkte gegeben.
  • Philosopie: Die DB-Hersteller selbst wissen ja am Besten, was wohl der kleinste gemeinsame Nenner aller 127000 Datenbankservervarianten sein wird. Dann sollen die halt sicherstellen, dass sich einer Applikation mit ODBC-Verbindung zu einem Datentopf als physikalische Datenbank ein Excel, eine Oracle-Instanz oder ein PostGreSQL unterjubeln lässt. Die Appz redet immer nur in der gleichen Sprache mit einer DSN und mit dem gleichen "Standard"-SQL.
  • Darau resultierender Nachteil: ein ODBC-Treiber ist der kleinste gemeinsame Nenner von dem, was Datenbankserver können. Kann sein, dass die DB ganz tolle Features/Erweiterungen hat, die kaufentscheidend waren. Über ODBC kannst Du die nicht nutzen - der Treiber versteht es nicht.

JDBC-Treiber
  • Sun's Antwort auf ODBC.
  • komplett in Java implementiert - nix DLL, nix installation, nix muss der Admin einrichten
  • wird "nebenbei" mit dem Applet (wenn es webbasiert ist) oder mit der Java-Appz auf dem Client deployed. Wenn Du z.B. den DBVisualizer oder eine andere SQL-Client-Workbench einrichtest, hast du "die Datenbanktreiber" mit dabei - ohne Setup und ohne Install.
  • Plattform/OS/Versionsunabhängig
  • Philosophie: eine Open-Source-Entwicklung ist ja vielleicht genauso flexibel und stabil und up to date... und er wird häufiger mal aktualisiert. Und die Beschränkung auf "kleinsten gemeinsamen Nenner" ist eher freiwillig.
  • Nachteil: der Entwickler/Anwender muss diesen kryptischen Connection-String (siehe Dein jTDS-Beispiel) eintippen können,

JDBC/ODBC-Bridge
  • Mischvariante. Wenn ohnehin (schon) ein ODBC-Treiber installiert ist oder als gegeben hingenommen wird, dann kann ich den natürlich auch nutzen, wenn ich ein Java-Programm bin. Dann gehe ich halt quasi über eine JDBC-API, die als Gesprächspartner eine (ODBC-)DLL-API hat. Why not. Besser, als alles neu zu erfinden.

Soweit stehend freihändig runtergetippt - es gibt sicher auch "Richtiges" im Netz.
Falls Du da was Nettes findest, setze einfach den Link darunter.

Grüße
Biber
soa
soa 25.03.2008 um 18:42:40 Uhr
Goto Top
Hey,

klasse. Vielen Dank. Hat mir sehr weitergeholfen.

Hier noch etwas zu Treibertypen: JDBC
http://www.dpunkt.de/java/Programmieren_mit_Java/Java_Database_Connecti ...

Weiterführende Infos:
http://www.informatik.uni-bonn.de/III/lehre/seminare/SWT/WS98/vortraege ...

Weitere Infos zu ODBC:
http://www.little-idiot.de/mysql/mysql-139.html


VG
SOA
Biber
Biber 27.03.2008 um 19:33:34 Uhr
Goto Top
Moin soa,

danke Dir auch für die Ergänzungen.

Vielleicht haben wir ja jetzt jemanden inspiriert, mal ein kleines Tutorialchen zu diesem Thema hier zu veröffentlichen.. face-wink

Diesen Thread hier schließe ich jetzt erstmal als "hinreichend beantwortet".

Grüße
Biber