Menü

Eine UDL-Datei erzeugen (VBScript)

Zurück | Ebene zurück

Mit nachfolgendem Skript ist es möglich eine UDL-Datei (Universal Data Link)  anhand eines ADO ConnectionString zu erzeugen. Hierzu wird das ADO-Streamobjekt verwendet.  Im Gegensatz zum TextStream-Objekt, das man über das Scripting.Filesystem.Objekt erzeugen kann, werden hierbei weniger Sicherheitsabfragen durchgeführt.

Normalerweise wird zum Erzeugen der UDL-Datei die COM-Schnittstelle IDataInitialize benötigt. Diese ist aber ohne Weiteres nicht in VBScript verfügbar. Bei einer UDL handelt es sich aber normalerweise um eine einfache Textdatei im Unicode-Format. Einen Einblick in den Aufbau der Datei erhält man z.B. über den Windows Texteditor (notepad.exe).

Zur Unterscheidung von normalen ASCII-Dateien und zum Festlegen, ob die Unicode-Zeichen im Macintosh oder Windows Format angeordnet sind wird der Datei das sog. Byte Order Mark (BOM) vorangestellt. Dies wird allerdings vom ADO-Stream-Objekt automatisch erledigt.

' *****************************************
' UDL Datei erzeugen
' (c) EULANDA Software GmbH
' 65510 Huenstetten 
' GERMANY
' www.eulanda.de
' *****************************************

Sub SaveUdlFile(ConnectionString, FileName)
Const adTypeText = 2
Const adSaveCreateOverWrite = 2

' Erzeugen des ADO-Stream-Objekts
Dim strm
Set strm = CreateObject("ADODB.Stream")

' Stream auf Unicodeverarbeiitung einstellen
strm.Type = adTypeText
strm.Charset = "Unicode" 

strm.Open
' Schreiben der Daten in den Stream
' BOM (Byte Order Mark) muss nicht extra geschrieben werden, 
' da dies das Stream Objekt erledigt
strm.WriteText "[oledb]" & vbCrLf
strm.WriteText "; Everything after this line is an OLE DB initstring" & vbCrLf
Strm.WriteText ConnectionString & vbCrLf

' Speichern als Datei
strm.SaveToFile FileName, adSaveCreateOverWrite

' Freigabe des Stream-Objekts
Set strm = Nothing

End Sub