COM-Aufrufe mit Transact SQL
In diesem Bereich geht es um das Einbinden von COM-Objekten in Transact SQL Scripts und Prozeduren.
Erzeugen eines COM-Objekts mit sp_OACreate
Aufrufen einer Methode mit sp_OAMethod
Abfragen und Setzen von Eigenschaften mit sp_OASetProperty und
sp_OAGetProperty [in Arbeit]
Nützliche Konstanten für verschiedene COM-Bibliotheken
(ADO, DMO, DTS, etc.)
Besonderheiten der sp_OA... Prozeduren
Wer bisher mit VBScript oder Visual Basic und COM-Objekten gearbeitet hat, wird feststellen, dass
die Handhabung der entsprechenden Aufrufe in Transact-SQL einige Unterschiede aufweist.
For Each... Next
Die For Each ... In ... Next Syntax wird nicht unterstützt. Um alle Objekte einer
Collection zu Durchlaufen muss eine While-Schleife verwendet werden und auf das jeweilige Objekt über den
Index zugegriffen werden. Beispiele...
GetObject
Für die Methode GetObject bietet Transact-SQL keinen entsprechenden Aufruf.
Objekthierarchien
Der Zugriff auf Objekthierarchien erfolgt am einfachsten direkt über die komplette Angabe
des Hierarchiepfads im Aufruf einer Property oder Method-Prozedur
Berechtigungen
Nach der Installation des SQL Servers dürfen die sp_OA... Prozeduren nur von Mitgliedern der sysadmin-Rolle
aufgerufen werden. Diese Einstellung sollte aus Sicherheitsgründen beibehalten werden.
Um "normalen" Benutzern den Aufruf dieser Prozeduren zu ermöglichen, können die Aufrufe in
gespeicherte Prozeduren in der master-Datenbank gekapselt werden. Die Benutzer können dann auf diese
Prozedur berechtigt werden. Damit ist sichergestellt, dass nur getestete Aufrufe zugelassen werden und
kein Zugriff auf ungewünschte Bereiche im System zugelassen wird.
Datentypen
Die folgende Übersicht zeigt wie die Transact-SQL Datentypen in Visual Basic Datentypen übersetzt werden.
| SQL Server Datentyp |
Visual Basic Datentyp |
| char, varchar, text, nvarchar, ntext |
string |
| decimal, numeric |
string |
| bit |
boolean |
| binary, varbinary, image |
eindimensionales Byte() Array |
| int |
long |
| smallint |
integer |
| tinyint |
byte |
| float |
double |
| real |
single |
| money, smallmoney |
currency |
| datetime, smalldatetime |
date |
| NULL-Wert |
Variant (auf Null gesetzt) |
Umwandlung von Visual Basic Datentypen in SQL Server Datentypen
| Visual Basic Datentyp |
SQL Server Datentyp |
| long, integer, byte, boolean, object |
int |
| double, single |
float |
| currency |
money |
| date |
datetime |
| string mit bis zu 4000 Zeichen |
varchar/nvarchar |
| string mit mehr als 4000 Zeichen |
text/ntext |
| eindimensionales Byte()-Array mit bis zu 8000 Bytes |
varbinary |
| eindimensionales Byte()-Array mit mehr als 8000 Bytes |
image |
|