WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   ADO-Upload (http://www.wcm.at/forum/showthread.php?t=96179)

Seidl 06.05.2003 23:50

ADO-Upload
 
Hallo Leute!

Ich habe mir für Lotus-Notes ein kleines Script geschrieben um aus Notes-Dokumenten erzeugte, statische HTML-Dokumente über HTTP auf einen WebServer zu stellen. Ich habe das ganze auf einem WebAccount getestet der unter Windows läuft und hatte absolut keine Probleme. Jetzt hat aber ein Arbeitskollege gemeint das würde mit seinem WebAccount (Linux) nicht funktionieren. Ich habe deshalb eine Mini-VBA-Funktion von MS kopiert die nur die Dateien unter einem Web-Ordner ins Direktfenster schreibt. Könnte bitte jemand mit einem nicht Windows Web-Account testen ob das Script bei ihm/ihr funktioniert?

Verweis auf ADO 2.7 setzen nicht vergessen!
---------------------------
Private Sub Test()
Dim grec As ADODB.Record
Dim grs As ADODB.Recordset
Set grec = New ADODB.Record
Set grs = New ADODB.Recordset
grec.Open "", "URL=http://www.MyHomepage.at/", , adFailIfNotExists, adOpenRecordUnspecified, "MyUsername", "MyPassword"
Set grs = grec.GetChildren
While Not grs.EOF
Debug.Print grs(0)
grs.MoveNext
Wend
End Sub
---------------------------

danke im Voraus
Seidl

_m3 07.05.2003 07:36

Hab ich da gerade Lotus Notes gelesen ? :D

Also eine kurze Suche bei msdn.com ergab einerseits:
Zitat:

The Microsoft OLE DB Provider for Internet Publishing allows ADO to access resources served by Microsoft FrontPage or Microsoft Internet Information Server. Resources include web source files such as HTML files, or Windows 2000 web folders.
was impliziert, dass es auch mit einem Apache, ... funktionieren sollte.

Andererseits wuerde
Zitat:

The ADO Record and Stream objects can be used with the Microsoft OLE DB Provider for Internet Publishing (Internet Publishing Provider) to access and manipulate resources, such as Web folders or files served by Microsoft® FrontPage®.
bedeuten, dass es nur mit einem IIS und Frontpage Extensions bzw. WebDAV funktioniert.

Ich LIEBE die eindeutige Doku von MS. :ms:

Ich werd das heute mal ausprobieren (neugierig bin).

Seidl 07.05.2003 08:35

Dein Posting gibt mir Hoffnung. Nicht unbedingt in Hinblick auf mein Script aber darauf, dass die Seiten zu diesem Thema wieder verfügbar sind. Nach meiner letzten Suche waren 50% der Seiten zu diesem Thema nicht erreichbar. Ich glaube da wird wiedermal gröber umstrukturiert. Naja, da gerade die neue VB.Net Version released wird, darf's mich eigentlich nicht wundern. Ich freu' mich übrigens schon ziemlich auf die morgige Release-Veranstaltung für die ganzen neuen 2003-er Versionen. Wenn das neue VB.Net wirklich alles hält was versprochen wurde dann ist es ein mittlerer Wunderwuzi :)

Seidl 13.05.2003 21:33

@ _m3:

Ich kann einfach die Spannung nicht länger ertragen :D
Hast du mit deinem Versuch noch irgendwas zu Tage gebracht?

Falls du's noch nicht probiert hast, hier als kleiner Anreiz das Notes-Script mit dem einen Upload auf einen Windows-Server bei ActiveISP erfolgreich getestet habe:

----------------------------------------------------------------
Beispielaufruf:
UploadFile"c:\anything.jpg", "URL=http://www.anywhere.at/anything.jpg", "Username", "Password", False
UploadFile"c:\anything.htm", "URL=http://www.anywhere.at/anything.htm", "Username", "Password", True
----------------------------------------------------------------
Option Public
Option Declare
%INCLUDE "lsconst.lss"


Const adModeReadWrite = 3
Const adCreateNonCollection = 0
Const adCreateOverwrite = 67108864
Const adDelayFetchStream = 16384
Const adOpenStreamFromRecord = 4
Const adTypeText = 2
Const adTypeBinary = 1


Public Function UploadFile(strSource As String, strTarget As String, Username As String, Password As String, ASCII As Integer) As Integer
' Funktion
' Die Datei unter dem Pfad 'strSource' wird unter der URL 'strTarget' gespeichert. Sollte unter strTarget bereits
' eine Datei vorhanden sein, so wird diese ohne Rückfrage überschrieben!
' IN
' strSource Pfad und Dateiname für die Quelldatei
' strTarget URL unter der die Datei gespeichert werden soll
' Username Benutzername für Zugriff auf das Zielverzeichnis
' Password Passendes Passwort zum Benutzernamen
' ASCII Wenn TRUE wird die Datei als ASCII-Text übertragen. Sonst binär.
On Error Goto Hell
Dim recTarget As Variant
Dim stmTarget As Variant
Dim ErrorCount As Integer
UploadFile = False
ErrorCount = 0
Set recTarget = CreateObject("ADODB.Record.2.7")
Set stmTarget = CreateObject("ADODB.Stream.2.7")
TryToOpen:
recTarget.Open "", strTarget, adModeReadWrite, adCreateNonCollection Or adCreateOverwrite, adDelayFetchStream, Username, Password
stmTarget.Open recTarget, adModeReadWrite, adOpenStreamFromRecord
If ASCII Then
stmTarget.Charset = "ascii"
stmTarget.Type = adTypeText
Else
stmTarget.Type = adTypeBinary
End If
stmTarget.LoadFromFile strSource
Call recTarget.Close()
stmTarget.Close
Set recTarget = Nothing
Set stmTarget = Nothing
UploadFile = True
Exit Function
Hell:
ErrorCount = ErrorCount + 1
Sleep(1)
If ErrorCount < 30 Then
Resume TryToOpen
Elseif Err = 213 Then
Msgbox "Der Upload der Datei '" & strSource & "'" & Chr(13) & "nach '" & Right(strTarget, Len(strTarget)-11) & "'" & Chr(13) & "konnte nicht abgeschlossen werden.", MB_ICONEXCLAMATION, "ADO-Fehler"
Resume GiveUp
Else
Msgbox Error(Err), MB_ICONEXCLAMATION, "ADO-Fehler " & Cstr(Err)
End If
GiveUp:
End Function
--------------------------------------------------------------

PS: Ich muss zugeben, dass ich mich seit meinem letzten Posting nicht mehr auf der MS-Homepage herumgetrieben habe. Ich wollte erst mal abwarten was dein Test ergibt. Heute bin ich dann zufällig wieder über das Script gestolpert und habe mal nach dem Thread gesehen.
Das Script ist übrigens natürlich weit davon entfernt perfekt zu sein. Es ist eben nur mal ein prinzipieller Versuch wie man die Sache bewerkstelligen könnte.


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag