ODBC-loser Zugriff auf MS-SQL-Server 7.0
Andi
- perl
0 Bio0 Rolf0 Klaus Mock0 Andi
Weiss jemand, wie ich ohne ODBC auf eine lokal auf dem Server liegende Datenbank mit PERL zugreifen kann?
Geht das ueberhaupt?
Also andersherum:
1. eine Datenbank wird mit dem SQL-Server verwaltet
2. das PERL-Skript liegt auf dem selben Server und muss auch dort liegen
3. es gibt keine eingerichtete ODBC-Schnittstelle auf dem Server
Danke Andreas
Sup!
So ein SQL-Server hat doch sicher eine Textconsole.
Du oeffnest also mit open2() oder open3() eine Pipe zu der Textkonsole, und kriegst stdin und stdout durch Deine Pipe.
Dann sendest Du Befehle und parst, was zurueckkommt...
... ist natuerlich kompliziert und imn Prinzip Bloedsinn, aber es geht sicher.
Gruesse,
Bio
Hi
- eine Datenbank wird mit dem SQL-Server verwaltet
- das PERL-Skript liegt auf dem selben Server und muss auch dort liegen
- es gibt keine eingerichtete ODBC-Schnittstelle auf dem Server
Sososo? Dann schau mal in die Systemsteuerung :) Die ODBC Treiber gibts auf jeder Windows Kiste, auch für MS SQL Server. Was du einrichten musst ist die Datenquelle (z.B. ein System DSN) - d.h., an den ODBC Treiber wird die Datenbank gelinkt. Für SQL Server brauchst du da die IP Adresse und deine Zugangskennung... SQL Server und Web Server können auch 2 verschiedene Rechner sein, ist jedoch völlig Wurscht weil die Verbindung über socket geht.
Rolf
Hallo,
- es gibt keine eingerichtete ODBC-Schnittstelle auf dem Server
Was heißt das?
1.) fehlt der ODBC-Treiber
kann ich mir nicht vorstellen. Soweit ich das noch im Kopf habe, kann man gar nicht verhindern, daß der ODBC-Trieber bei der Installation des SQL_servers nicht mitinstalliert wird.
oder
2.) es fehlt eines der entsprechenden Perl-Module (DBD::ODBC bz. Win32::ODBC)?
Sollte das der Fall sein, so solltest Du eines der beiden installieren. Ich würde DBD::ODBC in verbindung mit DBI empfehlen, da hier zumindest theoretisch die Möglichkeit besteht, später auch eine andere Datenbank zu verwenden, für die es ein entsprechendes DBD-Modul gibt.
3.) es ist kein ODBC-DSN eingerichtet.
Auch kein Problem, Du solltest nur darauf achten, daß Du einen System-DSN einrichtest, wenn Du von einem Webserver aus auf die Datenbank zugreifen willst.
Alternativ kannst Du auch on-the-fly den ODBC-Connect definieren. wie das geht steht in der Dokumentation von DBD::ODBC unter
'Using DBD::ODBC with web servers under Win32.'
...Da ist mir gerade eingefallen, daß es ja noch einen Weg gibt. Und zwar mit DBD::ADO. Wie das allerdings funktioniert entzieht sich meinen Kenntnissen :-(
Es gibt aber in der Dokumentation zu diesem Modul einen Link auf eine ADO-Seite, wo sicherlich nachgelesen werden kann, wie man eine Verbindung zu einem SQL-Server herstellt.
http://www.able-consulting.com/tech.htm bzw.
http://www.able-consulting.com/ADO_Conn.htm
Grüße
Klaus
Was heißt das?
1.) fehlt der ODBC-Treiber
kann ich mir nicht vorstellen. Soweit ich das noch im Kopf habe, kann man gar nicht verhindern, daß der ODBC-Trieber bei der Installation des SQL_servers nicht mitinstalliert wird.
Das Problem ist eben, das auf dem SQl-Server kein ODBC installiert ist, was ja auch Sinn macht, weil, warum sollte sich der SQL-Server sich zu sich selbst per ODBC verbinden.
Hallo,
Das Problem ist eben, das auf dem SQl-Server kein ODBC installiert ist, was ja auch Sinn macht, weil, warum sollte sich der SQL-Server sich zu sich selbst per ODBC verbinden.
Dann solltest Du entweder dafür sorgen, daß der Treiber installiert ist, oder es mit DBD::ADO versuchen, damit gehts auch mit OLE-DB (kann das der 7.0er Server schon?).
Oder ist das ein Problem mit dem Admin des Servers? Wenn Du aber auf die Datenbank zugreifen sollst, dann muß es doch einen Weg geben, das zu erreichen. Denke ich.
Der ODBC-Treiber für den SQL-Server ist ja wohl bei jedem Furz-Programm von MS dabei, daher sollte es nicht so schwierig sein, den nachzuinstallieren, technisch gesehen zumindest.
Grüße
Klaus