SQL-Server 2005: DTS-Paket erstellt Excel-Datei nicht

Roger U.

New Member
Guten Tag zusammen,

in unserer Firma haben wir folgendes Problem:

Wir benutzen Prozeduren, welche DTS-Pakete aufrufen. Diese Pakete erstellen zum Beispiel eine Excel-Datei oder eine TXT-Datei und füllen diese dann mit den entsprechenden Daten. Das Problem ist, dass folgendes Paket, keine Excel-Datei erstellt.

Das Problem wurde von unserer Seite hier nicht gefunden, deshalb habe ich beschlossen dieses jetzt mal ins Forum zu stellen. Vielleicht kann jemand von Euch uns helfen.

Also erst mal zum Code der Prozedur:

Code:
USE [DatenbankName]
GO
/****** Objekt:  StoredProcedure [dbo].[eda_to_excel]    Skriptdatum: 12/01/2008 12:56:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER                                 procedure [dbo].[eda_to_excel]
(@path varchar(200),
 @filename varchar(200),
 @in_clause varchar(1000)='')
as
 
 DECLARE @hr int,  
 @paket int,
 @fullfilename varchar(400),
 @dummy int,
 @duplicates int,
 @export int ,
 @brutto int ,
 @spacer int,
 @sql varchar(4000),
 @statement varchar(4000),
 @server varchar(50),
 @sql_old varchar(4000)
 set @server = @@servername
 set @fullfilename = @path +'\'+@filename 
 set @dummy = 1 
   
 EXEC @hr = master.dbo.sp_OACreate 'DTS.Package', @paket output  
 EXEC @hr = master.dbo.sp_OAMethod    
                 @paket,  
                 'LoadFromSQLServer',   
                 NULL,  
                 '(local)',   
                 NULL,  
                 NULL,  
                 256,
                 NULL,  
                 NULL,  
                 NULL,  
                 'export_eda' -- Name des Pakets  
 set @sql_old ='Tasks("Copy Data from Ergebnisse to EDA Task").Properties("SourceSQLStatement").Value'
 execute @hr = sp_OAGetProperty @paket, @sql_old, @statement output
 


if @in_clause !=''
 begin
	 set @sql =replace(@statement, 'and vermerk=''EDA2''','and mailcode in ('+@in_clause+ ') and vermerk=''EDA2''')
 execute @hr = sp_OASetProperty @paket, 'Tasks("Copy Data from Ergebnisse to EDA Task").Properties("SourceSQLStatement").Value', @sql
 
set @sql_old ='Tasks("Copy Data from Ergebnisse to EDA Task").Properties("SourceSQLStatement").Value'
 	execute @hr = sp_OAGetProperty @paket, @sql_old, @statement output

 end
 
 EXEC @hr = sp_OASetProperty @paket, 'connections("Ziel").DataSource',@fullfilename
 
 EXEC @hr = sp_OASetProperty @paket, 'GlobalVariables("fullfilename").Value',@fullfilename
 EXEC @hr = sp_OASetProperty @paket, 'connections("Quelle").DataSource',@server
 exec @hr = master.dbo.sp_OAMethod  @paket,  
      'Execute', NULL 


   
EXEC @hr = master.dbo.sp_OADestroy @paket

Nun, zum DTS-Paket:

1. ActiveX-Skripttask: nicht definiert

Code:
'**********************************************************************
'  Visual Basic-ActiveX-Skript
'************************************************************************

Option Explicit

Function Main()
	
	Dim oFSO
  	Dim catDB
  	Dim catTBL
	Dim oConn
             dim Blatt(3)
	dim x
	Dim strPathFileName, xlApp, xlBook ,mysheet
	strPathFileName = DTSGlobalVariables("fullfilename").Value
             blatt(0)="Recherche_erfolglos"
	blatt(1)="eda"
	blatt(2)="ip"
	blatt(3)="eda2"
            
 	 ' FSO - Objekt erstellen
  	Set oFSO = CreateObject("Scripting.FileSystemObject")
  
 	 ' Test, ob Datei bereits existiert. Gegebenenfalls löschen.
 	 If oFSO.FileExists(strPathFileName) Then
    oFSO.DeleteFile strPathFileName
  End If
  
  ' FSO - Objekt aufräumen
  Set oFSO = Nothing
  Set catDB = CreateObject("ADOX.Catalog")
  
  catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Extended " _
    & "Properties=""Excel 8.0"";mode=share deny none;Data Source=" & strPathFileName

  
for x= 0 to 3
 Set catTBL = CreateObject("ADOX.Table")
  With catTBL
    .Name =Blatt(x)       ' Name des Excel - Arbeitsblattes
    Set .ParentCatalog = catDB
    With .Columns
	 .Append "paket", 3
	.Append "mailcode", 202
	.Append "contact_nr",3
	.Append "mannr",3
	.Append "adrnum",3
	.Append "titel",202
	.Append "vname",202
	.Append "fname", 202
	.Append "fname_zusa",202
	.Append "strasse",202
             .Append "name2",202
	.Append "plz", 202
	.Append "ort",202
	.Append "telefon",202
	.Append "buchdat", 7
	.Append "cc_qual", 3
	.Append "sternchen", 202
	.Append "tel_ber",202
	.Append "änderung", 202
	.Append "recherche",202
    End With
  

  End With
  catDB.Tables.Append catTBL
 next 


  Set catTBL = Nothing
  Set catDB = Nothing


	Main = DTSTaskExecResult_Success
End Function

Nun, die Fehlermeldung im Log-File des Paketes:

******************************************************************************** ********************
Fehler beim Ausführen des folgenden DTS-Pakets:

Fehlerquelle: Microsoft Data Transformation Services-Paket (DTS)
Fehlerbeschreibung: Fehler bei Paket aufgrund von Fehler bei Schritt 'DTSStep_DTSActiveScriptTask_1'.
Fehlercode: 80040428
\Hilfedatei für Fehler: sqldts80.hlp
Hilfekontext-ID für Fehler: 700


Paketname: export_eda
Paketbeschreibung: export_eda
Paket-ID: {87E59CB2-1645-4D3C-BAB6-E89BD0175CD3}
Paketversion: {8557532F-F3AB-4FA7-AF69-02A5254CEA82}
Paketausführungsherkunft: {BEB75D8D-302F-4480-9C31-79F764233D92}
Ausgeführt auf: PCName
Ausgeführt von: SYSTEM
Ausführung gestartet: 01.12.2008 13:04:51
Ausführung abgeschlossen: 01.12.2008 13:04:51
Gesamtausführungszeit: 0.047 Sekunden

Paketschritt-Ausführungsinformationen:


Schritt 'Copy Data from Ergebnisse to EDA Schritt' wurde nicht ausgeführt.

Fehler bei Schritt 'DTSStep_DTSActiveScriptTask_1'.

Schritt-Fehlerquelle: Microsoft Data Transformation Services-Paket (DTS)
Schritt-Fehlerbeschreibung: Fehlercode: 0
Fehlerquelle= Microsoft JET Database Engine
Fehlerbeschreibung: Unbekannter Fehler

Fehler in Zeile 33.

Schritt-Fehlercode: 800403FE
Schritt-Hilfedatei für Fehler: sqldts80.hlp
Schritt-Hilfekontext-ID für Fehler: 4500

Schrittausführung gestartet: 01.12.2008 13:04:51
Schrittausführung abgeschlossen: 01.12.2008 13:04:51
Gesamte Schrittausführungszeit: 0.015 Sekunden
Fortschrittswert in Schritt: 0
******************************************************************************** ********************

Noch zu unserem System:

Betriebssystem: Windows XP Prof. Service Paket 2
Office 2003 Service Paket 3
SQL-Server 2005 (DTS-Designer ist installiert...)

Hoffe ich habe alle Angaben geliefert. Falls ihr noch weitere Angaben benötigt, werde ich diese gerne nachliefern.

Ich hoffe ihr könnt mir helfen...

Roger U.
 
Last edited by a moderator:
Back
Top