EULANDA® ERP System Head Start thru Technology
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) CN 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