itrain-home BASTA! Spring 2012  
home
 Aktuelle Seite:  knowhow sql tsql com method.asp 
 



 

Transact-SQL und COM

Methodenaufrufe

Methoden werden in Transact-SQL über die Prozedur sp_OAMethod aufgerufen.

Als Parameter wird der Objekt-Handle, der Name der Methode und evtl. Ausgabeparameter angegeben.

Das Abfragen von Eigenschaften kann übrigens auch über diese Prozedur erfolgen.

Beispiel: Lesen einer Textdatei mit Hilfe des Scripting.FileSystemObjects

-- Beispiel sp_OAMethod  
 -- Um die Übersichtlichkeit zu erhöhen wurde auf die Fehlerbehandlung verzichtet...  
   
 -- Dieses Transact-SQL Script liest den Inhalt einer Textdatei zeilenweise in eine  
  -- temporäre Tabelle  
 -- Zum Lesen der Datei wird das Scripting.FilesystemObject verwendet.  
 -- Dieses Beispiel dient nur Demozwecken. Für den Import von Textdateien sind bcp und   
 -- DTS besser geeignet  
 -- Fragen, Kommentare? Bitte Email an sql@itrain.de  
   
  SET NOCOUNT ON  
   
 DECLARE @hr int  
 DECLARE @fso int  
 DECLARE @fsStream int  
 DECLARE @AtEndOfStream int  
   
 -- Erzeugen einer temporären Tabelle für eingelesene Zeilen  
 CREATE TABLE #DateiInhalt (zeilenr int IDENTITY, zeile text)  
   
 -- Erzeugen eines Scripting.FileSystemObjects  
 EXEC @hr = master.dbo.sp_OACreate 'Scripting.FileSystemObject' ,@fso OUTPUT  
 print @hr  
 -- Öffnen einer Textdatei  
 EXEC @hr = master.dbo.sp_OAMethod @fso, 'OpenTextFile', @fsStream OUTPUT, 'C:\orders.txt'  
 print @hr  
 -- Prüfen auf Dateiende  
 EXEC @hr = master.dbo.sp_OAMethod @fsstream, 'AtEndOfStream', @AtEndOfStream OUTPUT  
   
 WHILE @AtEndOfStream = 0  
 BEGIN  
 --      Nächste Zeile lesen und in Tabelle #Dateiinhalt schreiben  
  INSERT INTO #DateiInhalt (zeile)  
   EXEC @hr = master.dbo.sp_OAMethod @fsStream, 'ReadLine'  
  -- Prüfen auf Dateiende  
  EXEC @hr = master.dbo.sp_OAMethod @fsstream, 'AtEndOfStream', @AtEndOfStream OUTPUT  
 END  
   
 -- Textstream-Objekt zerstören  
 EXEC @hr = master.dbo.sp_OADestroy @fsstream  
 -- FilesystemObject zerstören  
 EXEC @hr = master.dbo.sp_OADestroy @fso  
   
 -- Inhalt der temporären Tabelle anzeigen lassen  
 SELECT * FROM #Dateiinhalt  
   
 DROP TABLE #Dateiinhalt  
 
Leerraum

Dokument zum Drucken anzeigen
English Pages
Link-Tipp zum Thema "VB.net": www.vbxtras.com/

VBExtras