Jump to content
Sign in to follow this  
Roger U.

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

Recommended Posts

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:

 

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:

post-51150-13567389615512_thumb.jpg

Share this post


Link to post
Share on other sites

1. ActiveX-Skripttask: nicht definiert

 

'**********************************************************************
'  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: CLNW5161

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.

Share this post


Link to post
Share on other sites

Vielleicht noch zu erwähnen ist, dass das Paket die Excel-Datei erstellt und ohne Probleme mit Daten füllt, wenn ich es separat im DTS-Designer ausführe. Führe ich es jedoch aus der Prozedur hinaus auf, dann klappt es nicht und oben erwähnter Fehler erscheint.

 

Ich hoffe ihr könnt mir helfen...

 

Gruess Roger U.

 

 

P.S.: sorry musste die Beiträge aufteilen...

Share this post


Link to post
Share on other sites

Hallo und willkommen an Board

 

Vermutung:

Wenn du den DTS-Export per SP ausführst, wie bist du da am SQL Server angemeldet? Per SQL-Authentifizierung oder per Windows-integrierter Anmeldung?

 

mfg

CP

Share this post


Link to post
Share on other sites

Hallo und Danke.

 

Also habe beides probiert. Es zeigt keine Wirkung. Es geht nicht.

 

Habe mich auch mal als Administrator bei meinem PC eingeloggt. Auch da funktioniert es nicht.

Share this post


Link to post
Share on other sites

Prüfe mal bitte die Berechtigungen, die das Dienstkonto des SQL Servers auf das Zielverzeichnis für die Exportdatei hat. Darf er dahin schreiben?

 

Wenn du das Package aus einen SQL Server Agent Schedule ausführst, solltest du ebenfalls die Berechtigungen des Accounts auf das Zielverzeichnis prüfen, unter dem der SQL Server Agent läuft.

Share this post


Link to post
Share on other sites
Siehe Bilder. Ist das richtig so?

Hast du eine Möglichkeit irgendwo anders hochzuladen und zu verlinken? Anhänge dauern hier zum einen mit der Freischaltung und zum anderen ist es immer fraglich, ob sie sehr zielführend sind.

Share this post


Link to post
Share on other sites

Wie wird die SP intern ausgeführt? Stösst du die manuell an? Läuft die als Agentschedule?

Wenn als Agentschedule, in welchem Kontext läuft der SQL Server Agent?

 

Handelt es sich um ein Verzeichnis, welches auf dem SQL Server selber liegt oder ist das ein Netzlaufwerk?

Share this post


Link to post
Share on other sites

Die SP führe ich manuell aus. Es ist kein automatischer Job oder sowas, was damit zu tun hat.

 

Diese SP sowie das Zielverzeichnis und der Server alles ist nur lokal.

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...