View Full Version : Dateiübertragung via ODBC
Hallo Synus
der Tipp war ja nicht schlecht... nur daran habe ich schon gedacht und auch gemacht - leider ohne nennenswerten Erfolg...
Trotzdem Danke für die Hilfe !!!
Hallo,
was heisst eigentlich "klappt nicht"?
gibt es da irgendwo eine Fehlermeldung, auf dem anfordernden PC? im Joblog des Serverjobs? in der QSYSOPR Q? im system log?
Ohne nähere Information ist das doch alles lesen im Kaffeesatz
Dieter
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von bml:
Hallo Forum
ich wollte eine Datei auf meine PC übertragen... klappte sonst auch immer einwandfrei... und funktioniert eigentlich immer noch, wenn da nicht diese eine Bibliothek wäre, bei der es nisch klappt !!
Diese Bibliothek ist 10-stellig.
Info:
AS/400: V5R1
Vor dem Releasewechelse (V4R5 -> V5R1) hat es noch funktioniert...!
Bitte um Hilfe
[/quote]
Hallo Dieter
finde ich schade, dass du keine Kaffee mags :-)
mal Spass bei Seite...
Ich bekomme keine Fehlermeldung oder sonstige Informationen !!!
Ich konfiguriere die ODBC Verbindung, drücke auf <OK> und es wird gespeichert.
Wenn man(n) sich danach die ODBC Verbindung ansieht, wurde der letzte Buchstabe der Bibl.
abgeschnitten - OHNE FEHLEMELDUNG. Somit ist eine Übertragung und oder Empfang von Daten aus der Bibl. nicht möglich.
Hallo,
Kaffee schon, aber keinen kalten oder Satz.
Das sieht doch nun eindeutig nach einem Treiber Problem/Fehler aus. Also: entweder eine Treiber Korrektur einspielen, oder eine Fehlermeldung an den Hersteller machen, oder einen Treiber eines anderen Herstellers verwenden, oder statt ODBC was anderes verwenden - z.B.: JDBC und Squirrel (Freeware) zum Beispiel.
Dieter Bender
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von bml:
Hallo Dieter
finde ich schade, dass du keine Kaffee mags :-)
mal Spass bei Seite...
Ich bekomme keine Fehlermeldung oder sonstige Informationen !!!
Ich konfiguriere die ODBC Verbindung, drücke auf <OK> und es wird gespeichert.
Wenn man(n) sich danach die ODBC Verbindung ansieht, wurde der letzte Buchstabe der Bibl.
abgeschnitten - OHNE FEHLEMELDUNG. Somit ist eine Übertragung und oder Empfang von Daten aus der Bibl. nicht möglich.
[/quote]
In der ODBC-Konfiguration V5 wurde der Parameter "Standardbibliothek" neu eingeführt.
Diese Bibliothek ist nur nötig, wenn SQL's ohne qualifizierten Namen abgesetzt werden, also z.b. "select ... from myfile ...". Laut SQL-Definition ist die Standardbibliothek, ohne spezielle Angaben, der Name des Benutzers.
Der Parameter braucht überhaupt nicht besetzt werden, sondern die Bibliothek/en sollten in "Bibliotheksliste" eingetragen werden (ab V5 ca. 250). Dort gibts das Problem der Verkürzung nicht, da ja mehrere Bibliotheken, durch Leerzeichen getrennt, angegeben werden können.
MS-Access bzw. MS-Query arbeiten immer mit dem qualifizierten Namen einer Tabelle, so dass eine Standardbibliothek nicht benötigt wird.
DANKE Fuerchau
Das war es !!! obwohl ich schwören könnte es auch mal so ausprobiert zu haben !!!
Wenn ich das jetzt mal nachvollziehe, klingt es eigentlich ziemlich logisch... wenn ich die Bibl. bei der Konfiguration in "Bibliotheksliste" packe, wird doch die ausgewählte Bibl. in meine Bibliotheksliste(*libl) gepackt - oder ??
Was ich da aber nicht ganz verstehe, ich habe mal bei meinen Versuchen, mir diese Bibl. manuell in meine AS/400 Bibliotheksliste gestellt, und es klappte nicht.
Was ist denn der unterschied ??
Trotzdem schon mal SUUUUUUUUUPPPPPPPPPPERRRRRRRRRRRR vielen Dank
Dazu muss man verstehen, wie die Jobs ins System kommen.
Alle Server-Jobs werden mit der Jobbeschreibung QDFTJOBD gestartet. Diese verweist als "Anfangsbibliotheksliste" auf den Systemwert QUSRLIBL.
Wenn also keine weiteren Angaben gemacht werden, hat ein DB-Serverjob genau diese Bibliotheken im Zugriff (Default: QGPL QTEMP).
Über die ODBC-Konfig kann man nun eine eigene Bibliotheksliste definieren. Der SQL-Server bekommt dann die Info, per CHGLIBL genau den USRLIBL-Anteil zu ändern (was man ja auch mittels CL erreichen kann).
Der Serverjob bekommt die Liste als einen String und kann somit per QCMDEXC bzw. API diesen Befehl ausführen.
Anders sieht es mit der Standardbibliothek aus. Diese gilt nur bei SQL !
Hier gibt es wiederum 2 Optionen bei der Namenskonvention, *SYS und *SQL.
Wählt man *SYS so sind Dateien per "Lib/File" bei *SQL per "LIB.FILE" zu qualifizieren.
Da *SYS von MS-Produkten nicht unterstützt wird und die Qualifizierung immer per "LIB.FILE" erfolgt ist eine Einstellung der Namenskonvention mit *SQL erforderlich.
Erfolgt nun bei einem SQL-Befehl keine Qualifizierung, so wird bei *SYS über die Bibliotheksliste gesucht und bei *SQL ausschließlich in der Standardbibliothek.
Solange man mit Produkten wie MS-Access/Query umgeht, wird immer mit den qualifizierten Namen in der Form "LIB.FILE" gearbeitet, so dass eine Standardbibliothek nicht erforderlich ist.
Programmiert man SQL jedoch selbst (z.B. VisualBasic/C++ oder in der SQL-Ansicht der entsprechenden Entwurfswerkzeuge) kann man ja die Qualifizierung selbst vorgeben bzw. auch weglassen, was zu obigem Suchverhalten führt.
Man kann nun sogar Bibliotheken angeben, die in der ODBC-Konfiguration gar nicht angegeben sind !!!
Insofern kann man von einer leichten Sicherheitslücke sprechen, wenn die entsprechenden Zugriffe von der AS/400 nicht eingeschränkt werden (z.B. durch PCSACC/400).
Ich kann bei MS-Access mittels einer SQL-Paththru-Abfrage auf eine beliebige ODBC-Verbindung zu meinem System verweisen und die entsprechenden SQL's auf alle Bibliotheken und Tabellen ausführen.