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: