beetFreeQ Geschrieben 25. September 2003 Geschrieben 25. September 2003 Moin Ihr! Nachdem ich mich schon stundenlang durch die SQL-Hilfe und das Web gesucht habe, dachte ich, daß hier ja vielleicht einer eine Lösung für folgendes Problem hat: Ich habe ein SQL-Script gebaut, das eine Datenbank komplett von "normalen" alphanummerischen Feldern in die entsprechenden Unicode-Felder umwandelt. Nun möchte ich noch ein Ergebnis als Datei auf dem Server ausgeben. Mit SP_MAKEWEBTASK ist das ja z.B. ganz einfach, allerdings ist mein Problem, daß das Script bei verschiedenen Kunden laufen soll, und dort ja eigentlich immer unterschiedliche Einstellungen bezüglich der Ordnerfreigabe etc bestehen. Ich müsste also irgendwie per SQL-Statement ein Verzeichnis auf dem Server ermitteln können, in das ich die Datei legen darf. Ich dachte da schon an das Temp-Verzeichnis, aber ich finde leider keine Möglichkeit... Gibt es auf dem MSSQL-Server 2000 überhaupt Möglichkeiten, derartige Dateioperationen per SQL-Statements auszuführen? Und wenn ja, wie löse ich mein Problem? Bin für jede Hilfe dankbar!
Honkytonk Geschrieben 26. September 2003 Geschrieben 26. September 2003 Hi Beeti, kleiner Lösungsansatz von mir: Via xp_cmdshell kannst du Shell-Commands absetzen. Mit exec xp_cmdshell 'echo %SystemRoot%\Temp' solltest du eigentlich das Temp-Verzeichnis des Systems bekommen. Dorthin kannst du dann auch deine Ausgabe schreiben. Gruß Honky
Goos Geschrieben 26. September 2003 Geschrieben 26. September 2003 Original geschrieben von Honkytonk Via xp_cmdshell kannst du Shell-Commands absetzen. Mit exec xp_cmdshell 'echo %SystemRoot%\Temp' Das waer dann in etwa ein C:\WinNT\Temp , welches aber nicht unbedingt vorhanden ist, also auch nicht ganz unkritisch. Es gaebe ja noch das TMP bzw TEMP aus den Umgebungsvariablen, aber daran kommt man vom SQL-Server aus nicht ran, da diese Variablen userspezifisch sind. Goos
beetFreeQ Geschrieben 26. September 2003 Autor Geschrieben 26. September 2003 Original geschrieben von Honkytonk Hi Beeti, kleiner Lösungsansatz von mir: Via xp_cmdshell kannst du Shell-Commands absetzen. Mit exec xp_cmdshell 'echo %SystemRoot%\Temp' solltest du eigentlich das Temp-Verzeichnis des Systems bekommen. Dorthin kannst du dann auch deine Ausgabe schreiben. Gruß Honky Moin! Hmm, daran hatte ich garnicht gedacht... - allerdings haben wir zumindest einen Kunden dabei, bei dem mein Script sicherlich nicht das Recht haben wird, die xp_cmdshell auszuführen... - aber der ist eh immer ne Extrawurst, und für die anderen dürfte es funzen... thx!
Goos Geschrieben 26. September 2003 Geschrieben 26. September 2003 Original geschrieben von beetFreeQ - allerdings haben wir zumindest einen Kunden dabei, bei dem mein Script sicherlich nicht das Recht haben wird, die xp_cmdshell auszuführen... - aber der ist eh immer ne Extrawurst, und für die anderen dürfte es funzen... thx! Hmm dann wirst da sicher auch kein xp_regread ausfuehren duerfen nehm ich mal an Das waer naemlich die zweite Loesung um entsprechende Variablen direkt aus der Registry zu holen. Goos
beetFreeQ Geschrieben 26. September 2003 Autor Geschrieben 26. September 2003 Original geschrieben von Goos Das waer dann in etwa ein C:\WinNT\Temp , welches aber nicht unbedingt vorhanden ist, also auch nicht ganz unkritisch. Es gaebe ja noch das TMP bzw TEMP aus den Umgebungsvariablen, aber daran kommt man vom SQL-Server aus nicht ran, da diese Variablen userspezifisch sind. Goos hab ich auch grad gemerkt... - geht also so leider nicht ...
beetFreeQ Geschrieben 26. September 2003 Autor Geschrieben 26. September 2003 Original geschrieben von Goos Hmm dann wirst da sicher auch kein xp_regread ausfuehren duerfen nehm ich mal an Das waer naemlich die zweite Loesung um entsprechende Variablen direkt aus der Registry zu holen. Goos Bingo!
Goos Geschrieben 26. September 2003 Geschrieben 26. September 2003 Die einzige wirkliche Moeglichkeit die du hast ist wohl dein HTML-File ins Data Verzeichnis deines SQL Servers zu schreiben. Das duerfe so ziemlich das einzige sein, was du immer ermitteln kannst. ...andererseits is dein Report so wichtig, dass ihn jeder sehen muss? Goos
beetFreeQ Geschrieben 26. September 2003 Autor Geschrieben 26. September 2003 Original geschrieben von Goos Die einzige wirkliche Moeglichkeit die du hast ist wohl dein HTML-File ins Data Verzeichnis deines SQL Servers zu schreiben. Das duerfe so ziemlich das einzige sein, was du immer ermitteln kannst. ...andererseits is dein Report so wichtig, dass ihn jeder sehen muss? Goos Hmm, und grad da haben wir in den meisten Fällen keine Schreibrechte ... - tja, eigentlich müsste ich mal sehen, ob ich mir den Bericht sonst auch zumailen lassen könnte... - das wäre dann noch die eleganteste Lösung... - immerhin steht da drin, welche Felder nicht angepasst werden konnten, weil andere Objekte davon abhängig sind... - die einzelnen Indizes aus den Tabellen rauszunehmen und nach der Spaltenänderung wieder einzufügen, das war mir dann nämlich doch zuviel Aufwand - aber das muß ja nicht jeder wissen :floet:
Goos Geschrieben 26. September 2003 Geschrieben 26. September 2003 Original geschrieben von beetFreeQ aber das muß ja nicht jeder wissen :floet: OK - ich werd nichts verraten :floet: Goos
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden