Bonjour,
j'ai un problème que je n'arrive pas à régler.
J'ai un programme vb qui lance un dts à peu près de cette façon
cmd.CommandText = "exportFactures "
Set cmd.ActiveConnection = cnA
cmd.CommandTimeout = 900 ' 15 minutes de timeout
cmd.CommandType = adCmdStoredProc
cmd.parameters.Refresh
cmd("@package") = PackageName
Set rst = cmd.Execute
rst.Close
où :
- PackageName est le nom d'un lot DTS
- la SP exportFacture est la suivante
CREATE PROCEDURE dbo.exportFactures
@package varchar(40)
as
declare @sql varchar(500)
set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost /U
utilisateur/P password /N '+@package+''''
execute (@sql)
GO
Le lot DTS ne fait qu'établir une connexion avec la base de données et
écrire le contenu d'une table dans un fichier texte nommé et spécifique
Le problème est que rien n'est écrit dans la fichier text.
Pourtant :
- si je lance le DTS directement cela fonctionne et, de plus, sur mon
serveur de developpement cela fonctionne aussi en passant par l'applicatif
vb.
J'avoue que je ne sais plus trop où chercher l'erreur.
Merci
Bonjour,
j'ai un problème que je n'arrive pas à régler.
J'ai un programme vb qui lance un dts à peu près de cette façon
cmd.CommandText = "exportFactures "
Set cmd.ActiveConnection = cnA
cmd.CommandTimeout = 900 ' 15 minutes de timeout
cmd.CommandType = adCmdStoredProc
cmd.parameters.Refresh
cmd("@package") = PackageName
Set rst = cmd.Execute
rst.Close
où :
- PackageName est le nom d'un lot DTS
- la SP exportFacture est la suivante
CREATE PROCEDURE dbo.exportFactures
@package varchar(40)
as
declare @sql varchar(500)
set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost /U
utilisateur/P password /N '+@package+''''
execute (@sql)
GO
Le lot DTS ne fait qu'établir une connexion avec la base de données et
écrire le contenu d'une table dans un fichier texte nommé et spécifique
Le problème est que rien n'est écrit dans la fichier text.
Pourtant :
- si je lance le DTS directement cela fonctionne et, de plus, sur mon
serveur de developpement cela fonctionne aussi en passant par l'applicatif
vb.
J'avoue que je ne sais plus trop où chercher l'erreur.
Merci
Bonjour,
j'ai un problème que je n'arrive pas à régler.
J'ai un programme vb qui lance un dts à peu près de cette façon
cmd.CommandText = "exportFactures "
Set cmd.ActiveConnection = cnA
cmd.CommandTimeout = 900 ' 15 minutes de timeout
cmd.CommandType = adCmdStoredProc
cmd.parameters.Refresh
cmd("@package") = PackageName
Set rst = cmd.Execute
rst.Close
où :
- PackageName est le nom d'un lot DTS
- la SP exportFacture est la suivante
CREATE PROCEDURE dbo.exportFactures
@package varchar(40)
as
declare @sql varchar(500)
set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost /U
utilisateur/P password /N '+@package+''''
execute (@sql)
GO
Le lot DTS ne fait qu'établir une connexion avec la base de données et
écrire le contenu d'une table dans un fichier texte nommé et spécifique
Le problème est que rien n'est écrit dans la fichier text.
Pourtant :
- si je lance le DTS directement cela fonctionne et, de plus, sur mon
serveur de developpement cela fonctionne aussi en passant par l'applicatif
vb.
J'avoue que je ne sais plus trop où chercher l'erreur.
Merci
Bonjour,
Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit d'écrire
(ou de créer) le fichier voulu.
Lors que vous l'exécutez à la main, vous utilisez votre contexte de
sécurité, ce qui n'est pas forcément le cas avec le planificateur.
--
Cordialement.
Romelard Fabrice [MVP]
"John" a écrit dans le message de news:
%
> Bonjour,
>
> j'ai un problème que je n'arrive pas à régler.
>
> J'ai un programme vb qui lance un dts à peu près de cette façon
>
> cmd.CommandText = "exportFactures "
> Set cmd.ActiveConnection = cnA
> cmd.CommandTimeout = 900 ' 15 minutes de timeout
> cmd.CommandType = adCmdStoredProc
> cmd.parameters.Refresh
>
> cmd("@package") = PackageName
> Set rst = cmd.Execute
> rst.Close
>
> où :
> - PackageName est le nom d'un lot DTS
> - la SP exportFacture est la suivante
>
> CREATE PROCEDURE dbo.exportFactures
>
> @package varchar(40)
>
> as
>
> declare @sql varchar(500)
>
> set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost /U
> utilisateur/P password /N '+@package+''''
>
> execute (@sql)
> GO
>
>
> Le lot DTS ne fait qu'établir une connexion avec la base de données et
> écrire le contenu d'une table dans un fichier texte nommé et spécifique
>
>
> Le problème est que rien n'est écrit dans la fichier text.
>
> Pourtant :
> - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> serveur de developpement cela fonctionne aussi en passant par l'applicatif
> vb.
>
> J'avoue que je ne sais plus trop où chercher l'erreur.
>
> Merci
>
>
Bonjour,
Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit d'écrire
(ou de créer) le fichier voulu.
Lors que vous l'exécutez à la main, vous utilisez votre contexte de
sécurité, ce qui n'est pas forcément le cas avec le planificateur.
--
Cordialement.
Romelard Fabrice [MVP]
"John" <john@nospam.com> a écrit dans le message de news:
%23WsU2VkNGHA.720@TK2MSFTNGP14.phx.gbl...
> Bonjour,
>
> j'ai un problème que je n'arrive pas à régler.
>
> J'ai un programme vb qui lance un dts à peu près de cette façon
>
> cmd.CommandText = "exportFactures "
> Set cmd.ActiveConnection = cnA
> cmd.CommandTimeout = 900 ' 15 minutes de timeout
> cmd.CommandType = adCmdStoredProc
> cmd.parameters.Refresh
>
> cmd("@package") = PackageName
> Set rst = cmd.Execute
> rst.Close
>
> où :
> - PackageName est le nom d'un lot DTS
> - la SP exportFacture est la suivante
>
> CREATE PROCEDURE dbo.exportFactures
>
> @package varchar(40)
>
> as
>
> declare @sql varchar(500)
>
> set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost /U
> utilisateur/P password /N '+@package+''''
>
> execute (@sql)
> GO
>
>
> Le lot DTS ne fait qu'établir une connexion avec la base de données et
> écrire le contenu d'une table dans un fichier texte nommé et spécifique
>
>
> Le problème est que rien n'est écrit dans la fichier text.
>
> Pourtant :
> - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> serveur de developpement cela fonctionne aussi en passant par l'applicatif
> vb.
>
> J'avoue que je ne sais plus trop où chercher l'erreur.
>
> Merci
>
>
Bonjour,
Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit d'écrire
(ou de créer) le fichier voulu.
Lors que vous l'exécutez à la main, vous utilisez votre contexte de
sécurité, ce qui n'est pas forcément le cas avec le planificateur.
--
Cordialement.
Romelard Fabrice [MVP]
"John" a écrit dans le message de news:
%
> Bonjour,
>
> j'ai un problème que je n'arrive pas à régler.
>
> J'ai un programme vb qui lance un dts à peu près de cette façon
>
> cmd.CommandText = "exportFactures "
> Set cmd.ActiveConnection = cnA
> cmd.CommandTimeout = 900 ' 15 minutes de timeout
> cmd.CommandType = adCmdStoredProc
> cmd.parameters.Refresh
>
> cmd("@package") = PackageName
> Set rst = cmd.Execute
> rst.Close
>
> où :
> - PackageName est le nom d'un lot DTS
> - la SP exportFacture est la suivante
>
> CREATE PROCEDURE dbo.exportFactures
>
> @package varchar(40)
>
> as
>
> declare @sql varchar(500)
>
> set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost /U
> utilisateur/P password /N '+@package+''''
>
> execute (@sql)
> GO
>
>
> Le lot DTS ne fait qu'établir une connexion avec la base de données et
> écrire le contenu d'une table dans un fichier texte nommé et spécifique
>
>
> Le problème est que rien n'est écrit dans la fichier text.
>
> Pourtant :
> - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> serveur de developpement cela fonctionne aussi en passant par l'applicatif
> vb.
>
> J'avoue que je ne sais plus trop où chercher l'erreur.
>
> Merci
>
>
Bonjour,
Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit d'écrire
(ou de créer) le fichier voulu.
Lors que vous l'exécutez à la main, vous utilisez votre contexte de
sécurité, ce qui n'est pas forcément le cas avec le planificateur.
--
Cordialement.
Romelard Fabrice [MVP]
"John" a écrit dans le message de news:
%
> Bonjour,
>
> j'ai un problème que je n'arrive pas à régler.
>
> J'ai un programme vb qui lance un dts à peu près de cette façon
>
> cmd.CommandText = "exportFactures "
> Set cmd.ActiveConnection = cnA
> cmd.CommandTimeout = 900 ' 15 minutes de timeout
> cmd.CommandType = adCmdStoredProc
> cmd.parameters.Refresh
>
> cmd("@package") = PackageName
> Set rst = cmd.Execute
> rst.Close
>
> où :
> - PackageName est le nom d'un lot DTS
> - la SP exportFacture est la suivante
>
> CREATE PROCEDURE dbo.exportFactures
>
> @package varchar(40)
>
> as
>
> declare @sql varchar(500)
>
> set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost /U
> utilisateur/P password /N '+@package+''''
>
> execute (@sql)
> GO
>
>
> Le lot DTS ne fait qu'établir une connexion avec la base de données et
> écrire le contenu d'une table dans un fichier texte nommé et spécifique
>
>
> Le problème est que rien n'est écrit dans la fichier text.
>
> Pourtant :
> - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> serveur de developpement cela fonctionne aussi en passant par
> vb.
>
> J'avoue que je ne sais plus trop où chercher l'erreur.
>
> Merci
>
>
Bonjour,
Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit d'écrire
(ou de créer) le fichier voulu.
Lors que vous l'exécutez à la main, vous utilisez votre contexte de
sécurité, ce qui n'est pas forcément le cas avec le planificateur.
--
Cordialement.
Romelard Fabrice [MVP]
"John" <john@nospam.com> a écrit dans le message de news:
%23WsU2VkNGHA.720@TK2MSFTNGP14.phx.gbl...
> Bonjour,
>
> j'ai un problème que je n'arrive pas à régler.
>
> J'ai un programme vb qui lance un dts à peu près de cette façon
>
> cmd.CommandText = "exportFactures "
> Set cmd.ActiveConnection = cnA
> cmd.CommandTimeout = 900 ' 15 minutes de timeout
> cmd.CommandType = adCmdStoredProc
> cmd.parameters.Refresh
>
> cmd("@package") = PackageName
> Set rst = cmd.Execute
> rst.Close
>
> où :
> - PackageName est le nom d'un lot DTS
> - la SP exportFacture est la suivante
>
> CREATE PROCEDURE dbo.exportFactures
>
> @package varchar(40)
>
> as
>
> declare @sql varchar(500)
>
> set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost /U
> utilisateur/P password /N '+@package+''''
>
> execute (@sql)
> GO
>
>
> Le lot DTS ne fait qu'établir une connexion avec la base de données et
> écrire le contenu d'une table dans un fichier texte nommé et spécifique
>
>
> Le problème est que rien n'est écrit dans la fichier text.
>
> Pourtant :
> - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> serveur de developpement cela fonctionne aussi en passant par
> vb.
>
> J'avoue que je ne sais plus trop où chercher l'erreur.
>
> Merci
>
>
Bonjour,
Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit d'écrire
(ou de créer) le fichier voulu.
Lors que vous l'exécutez à la main, vous utilisez votre contexte de
sécurité, ce qui n'est pas forcément le cas avec le planificateur.
--
Cordialement.
Romelard Fabrice [MVP]
"John" a écrit dans le message de news:
%
> Bonjour,
>
> j'ai un problème que je n'arrive pas à régler.
>
> J'ai un programme vb qui lance un dts à peu près de cette façon
>
> cmd.CommandText = "exportFactures "
> Set cmd.ActiveConnection = cnA
> cmd.CommandTimeout = 900 ' 15 minutes de timeout
> cmd.CommandType = adCmdStoredProc
> cmd.parameters.Refresh
>
> cmd("@package") = PackageName
> Set rst = cmd.Execute
> rst.Close
>
> où :
> - PackageName est le nom d'un lot DTS
> - la SP exportFacture est la suivante
>
> CREATE PROCEDURE dbo.exportFactures
>
> @package varchar(40)
>
> as
>
> declare @sql varchar(500)
>
> set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost /U
> utilisateur/P password /N '+@package+''''
>
> execute (@sql)
> GO
>
>
> Le lot DTS ne fait qu'établir une connexion avec la base de données et
> écrire le contenu d'une table dans un fichier texte nommé et spécifique
>
>
> Le problème est que rien n'est écrit dans la fichier text.
>
> Pourtant :
> - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> serveur de developpement cela fonctionne aussi en passant par
> vb.
>
> J'avoue que je ne sais plus trop où chercher l'erreur.
>
> Merci
>
>
Là, il s'agirait plutôt du compte de service de Sql Server
Il faut d'une part que vous soyez connecté en tant que sysadmin, d'autre
part que le compte de service de SQL Server (service MSSQLSERVER) est bien
droit d'écrire ce fichier.
D'autre part il serait judicieux de lancer cette commande dans l'analyseur
de requête en se loggant avec le même compte pour avoir les messages
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
"Romelard Fabrice [MVP]" a écrit :
> Bonjour,
>
> Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> (ou de créer) le fichier voulu.
> Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> sécurité, ce qui n'est pas forcément le cas avec le planificateur.
>
> --
> Cordialement.
>
> Romelard Fabrice [MVP]
>
> "John" a écrit dans le message de news:
> %
> > Bonjour,
> >
> > j'ai un problème que je n'arrive pas à régler.
> >
> > J'ai un programme vb qui lance un dts à peu près de cette façon
> >
> > cmd.CommandText = "exportFactures "
> > Set cmd.ActiveConnection = cnA
> > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > cmd.CommandType = adCmdStoredProc
> > cmd.parameters.Refresh
> >
> > cmd("@package") = PackageName
> > Set rst = cmd.Execute
> > rst.Close
> >
> > où :
> > - PackageName est le nom d'un lot DTS
> > - la SP exportFacture est la suivante
> >
> > CREATE PROCEDURE dbo.exportFactures
> >
> > @package varchar(40)
> >
> > as
> >
> > declare @sql varchar(500)
> >
> > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost
> > utilisateur/P password /N '+@package+''''
> >
> > execute (@sql)
> > GO
> >
> >
> > Le lot DTS ne fait qu'établir une connexion avec la base de données et
> > écrire le contenu d'une table dans un fichier texte nommé et
> >
> >
> > Le problème est que rien n'est écrit dans la fichier text.
> >
> > Pourtant :
> > - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> > serveur de developpement cela fonctionne aussi en passant par
> > vb.
> >
> > J'avoue que je ne sais plus trop où chercher l'erreur.
> >
> > Merci
> >
> >
>
>
>
Là, il s'agirait plutôt du compte de service de Sql Server
Il faut d'une part que vous soyez connecté en tant que sysadmin, d'autre
part que le compte de service de SQL Server (service MSSQLSERVER) est bien
droit d'écrire ce fichier.
D'autre part il serait judicieux de lancer cette commande dans l'analyseur
de requête en se loggant avec le même compte pour avoir les messages
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
"Romelard Fabrice [MVP]" a écrit :
> Bonjour,
>
> Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> (ou de créer) le fichier voulu.
> Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> sécurité, ce qui n'est pas forcément le cas avec le planificateur.
>
> --
> Cordialement.
>
> Romelard Fabrice [MVP]
>
> "John" <john@nospam.com> a écrit dans le message de news:
> %23WsU2VkNGHA.720@TK2MSFTNGP14.phx.gbl...
> > Bonjour,
> >
> > j'ai un problème que je n'arrive pas à régler.
> >
> > J'ai un programme vb qui lance un dts à peu près de cette façon
> >
> > cmd.CommandText = "exportFactures "
> > Set cmd.ActiveConnection = cnA
> > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > cmd.CommandType = adCmdStoredProc
> > cmd.parameters.Refresh
> >
> > cmd("@package") = PackageName
> > Set rst = cmd.Execute
> > rst.Close
> >
> > où :
> > - PackageName est le nom d'un lot DTS
> > - la SP exportFacture est la suivante
> >
> > CREATE PROCEDURE dbo.exportFactures
> >
> > @package varchar(40)
> >
> > as
> >
> > declare @sql varchar(500)
> >
> > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost
> > utilisateur/P password /N '+@package+''''
> >
> > execute (@sql)
> > GO
> >
> >
> > Le lot DTS ne fait qu'établir une connexion avec la base de données et
> > écrire le contenu d'une table dans un fichier texte nommé et
> >
> >
> > Le problème est que rien n'est écrit dans la fichier text.
> >
> > Pourtant :
> > - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> > serveur de developpement cela fonctionne aussi en passant par
> > vb.
> >
> > J'avoue que je ne sais plus trop où chercher l'erreur.
> >
> > Merci
> >
> >
>
>
>
Là, il s'agirait plutôt du compte de service de Sql Server
Il faut d'une part que vous soyez connecté en tant que sysadmin, d'autre
part que le compte de service de SQL Server (service MSSQLSERVER) est bien
droit d'écrire ce fichier.
D'autre part il serait judicieux de lancer cette commande dans l'analyseur
de requête en se loggant avec le même compte pour avoir les messages
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
"Romelard Fabrice [MVP]" a écrit :
> Bonjour,
>
> Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> (ou de créer) le fichier voulu.
> Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> sécurité, ce qui n'est pas forcément le cas avec le planificateur.
>
> --
> Cordialement.
>
> Romelard Fabrice [MVP]
>
> "John" a écrit dans le message de news:
> %
> > Bonjour,
> >
> > j'ai un problème que je n'arrive pas à régler.
> >
> > J'ai un programme vb qui lance un dts à peu près de cette façon
> >
> > cmd.CommandText = "exportFactures "
> > Set cmd.ActiveConnection = cnA
> > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > cmd.CommandType = adCmdStoredProc
> > cmd.parameters.Refresh
> >
> > cmd("@package") = PackageName
> > Set rst = cmd.Execute
> > rst.Close
> >
> > où :
> > - PackageName est le nom d'un lot DTS
> > - la SP exportFacture est la suivante
> >
> > CREATE PROCEDURE dbo.exportFactures
> >
> > @package varchar(40)
> >
> > as
> >
> > declare @sql varchar(500)
> >
> > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost
> > utilisateur/P password /N '+@package+''''
> >
> > execute (@sql)
> > GO
> >
> >
> > Le lot DTS ne fait qu'établir une connexion avec la base de données et
> > écrire le contenu d'une table dans un fichier texte nommé et
> >
> >
> > Le problème est que rien n'est écrit dans la fichier text.
> >
> > Pourtant :
> > - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> > serveur de developpement cela fonctionne aussi en passant par
> > vb.
> >
> > J'avoue que je ne sais plus trop où chercher l'erreur.
> >
> > Merci
> >
> >
>
>
>
Là, il s'agirait plutôt du compte de service de Sql Server
Il faut d'une part que vous soyez connecté en tant que sysadmin, d'autre
part que le compte de service de SQL Server (service MSSQLSERVER) est bien
droit d'écrire ce fichier.
D'autre part il serait judicieux de lancer cette commande dans l'analyseur
de requête en se loggant avec le même compte pour avoir les messages
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
"Romelard Fabrice [MVP]" a écrit :
> Bonjour,
>
> Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> (ou de créer) le fichier voulu.
> Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> sécurité, ce qui n'est pas forcément le cas avec le planificateur.
>
> --
> Cordialement.
>
> Romelard Fabrice [MVP]
>
> "John" a écrit dans le message de news:
> %
> > Bonjour,
> >
> > j'ai un problème que je n'arrive pas à régler.
> >
> > J'ai un programme vb qui lance un dts à peu près de cette façon
> >
> > cmd.CommandText = "exportFactures "
> > Set cmd.ActiveConnection = cnA
> > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > cmd.CommandType = adCmdStoredProc
> > cmd.parameters.Refresh
> >
> > cmd("@package") = PackageName
> > Set rst = cmd.Execute
> > rst.Close
> >
> > où :
> > - PackageName est le nom d'un lot DTS
> > - la SP exportFacture est la suivante
> >
> > CREATE PROCEDURE dbo.exportFactures
> >
> > @package varchar(40)
> >
> > as
> >
> > declare @sql varchar(500)
> >
> > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost
> > utilisateur/P password /N '+@package+''''
> >
> > execute (@sql)
> > GO
> >
> >
> > Le lot DTS ne fait qu'établir une connexion avec la base de données et
> > écrire le contenu d'une table dans un fichier texte nommé et
> >
> >
> > Le problème est que rien n'est écrit dans la fichier text.
> >
> > Pourtant :
> > - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> > serveur de developpement cela fonctionne aussi en passant par
> > vb.
> >
> > J'avoue que je ne sais plus trop où chercher l'erreur.
> >
> > Merci
> >
> >
>
>
>
Là, il s'agirait plutôt du compte de service de Sql Server
Il faut d'une part que vous soyez connecté en tant que sysadmin, d'autre
part que le compte de service de SQL Server (service MSSQLSERVER) est bien
droit d'écrire ce fichier.
D'autre part il serait judicieux de lancer cette commande dans l'analyseur
de requête en se loggant avec le même compte pour avoir les messages
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
"Romelard Fabrice [MVP]" a écrit :
> Bonjour,
>
> Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> (ou de créer) le fichier voulu.
> Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> sécurité, ce qui n'est pas forcément le cas avec le planificateur.
>
> --
> Cordialement.
>
> Romelard Fabrice [MVP]
>
> "John" <john@nospam.com> a écrit dans le message de news:
> %23WsU2VkNGHA.720@TK2MSFTNGP14.phx.gbl...
> > Bonjour,
> >
> > j'ai un problème que je n'arrive pas à régler.
> >
> > J'ai un programme vb qui lance un dts à peu près de cette façon
> >
> > cmd.CommandText = "exportFactures "
> > Set cmd.ActiveConnection = cnA
> > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > cmd.CommandType = adCmdStoredProc
> > cmd.parameters.Refresh
> >
> > cmd("@package") = PackageName
> > Set rst = cmd.Execute
> > rst.Close
> >
> > où :
> > - PackageName est le nom d'un lot DTS
> > - la SP exportFacture est la suivante
> >
> > CREATE PROCEDURE dbo.exportFactures
> >
> > @package varchar(40)
> >
> > as
> >
> > declare @sql varchar(500)
> >
> > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost
> > utilisateur/P password /N '+@package+''''
> >
> > execute (@sql)
> > GO
> >
> >
> > Le lot DTS ne fait qu'établir une connexion avec la base de données et
> > écrire le contenu d'une table dans un fichier texte nommé et
> >
> >
> > Le problème est que rien n'est écrit dans la fichier text.
> >
> > Pourtant :
> > - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> > serveur de developpement cela fonctionne aussi en passant par
> > vb.
> >
> > J'avoue que je ne sais plus trop où chercher l'erreur.
> >
> > Merci
> >
> >
>
>
>
Là, il s'agirait plutôt du compte de service de Sql Server
Il faut d'une part que vous soyez connecté en tant que sysadmin, d'autre
part que le compte de service de SQL Server (service MSSQLSERVER) est bien
droit d'écrire ce fichier.
D'autre part il serait judicieux de lancer cette commande dans l'analyseur
de requête en se loggant avec le même compte pour avoir les messages
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
"Romelard Fabrice [MVP]" a écrit :
> Bonjour,
>
> Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> (ou de créer) le fichier voulu.
> Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> sécurité, ce qui n'est pas forcément le cas avec le planificateur.
>
> --
> Cordialement.
>
> Romelard Fabrice [MVP]
>
> "John" a écrit dans le message de news:
> %
> > Bonjour,
> >
> > j'ai un problème que je n'arrive pas à régler.
> >
> > J'ai un programme vb qui lance un dts à peu près de cette façon
> >
> > cmd.CommandText = "exportFactures "
> > Set cmd.ActiveConnection = cnA
> > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > cmd.CommandType = adCmdStoredProc
> > cmd.parameters.Refresh
> >
> > cmd("@package") = PackageName
> > Set rst = cmd.Execute
> > rst.Close
> >
> > où :
> > - PackageName est le nom d'un lot DTS
> > - la SP exportFacture est la suivante
> >
> > CREATE PROCEDURE dbo.exportFactures
> >
> > @package varchar(40)
> >
> > as
> >
> > declare @sql varchar(500)
> >
> > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost
> > utilisateur/P password /N '+@package+''''
> >
> > execute (@sql)
> > GO
> >
> >
> > Le lot DTS ne fait qu'établir une connexion avec la base de données et
> > écrire le contenu d'une table dans un fichier texte nommé et
> >
> >
> > Le problème est que rien n'est écrit dans la fichier text.
> >
> > Pourtant :
> > - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> > serveur de developpement cela fonctionne aussi en passant par
> > vb.
> >
> > J'avoue que je ne sais plus trop où chercher l'erreur.
> >
> > Merci
> >
> >
>
>
>
Donc après lecture du message d'erreur le problème vient du fait que le dts
qui est lancé sur le serveur n'arrive pas à écrire dans un fichier situé sur
un poste local.
Ce qui semble à peu normal.
Existe-t-il un moyen de faire en sorte que le dts lancé par vb écrive dans
un fichier local ?
Merci
"Christian Robert" (sansspam)> wrote in message
news:
> Là, il s'agirait plutôt du compte de service de Sql Server
>
> Il faut d'une part que vous soyez connecté en tant que sysadmin, d'autre
> part que le compte de service de SQL Server (service MSSQLSERVER) est bien
le
> droit d'écrire ce fichier.
>
> D'autre part il serait judicieux de lancer cette commande dans l'analyseur
> de requête en se loggant avec le même compte pour avoir les messages
d'erreur.
>
> --
> Cordialement
>
> Christian Robert
> Consultant - Formateur chez Winwise
> MCT - MCDBA - MCSD
>
>
> "Romelard Fabrice [MVP]" a écrit :
>
> > Bonjour,
> >
> > Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
d'écrire
> > (ou de créer) le fichier voulu.
> > Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> > sécurité, ce qui n'est pas forcément le cas avec le planificateur.
> >
> > --
> > Cordialement.
> >
> > Romelard Fabrice [MVP]
> >
> > "John" a écrit dans le message de news:
> > %
> > > Bonjour,
> > >
> > > j'ai un problème que je n'arrive pas à régler.
> > >
> > > J'ai un programme vb qui lance un dts à peu près de cette façon
> > >
> > > cmd.CommandText = "exportFactures "
> > > Set cmd.ActiveConnection = cnA
> > > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > > cmd.CommandType = adCmdStoredProc
> > > cmd.parameters.Refresh
> > >
> > > cmd("@package") = PackageName
> > > Set rst = cmd.Execute
> > > rst.Close
> > >
> > > où :
> > > - PackageName est le nom d'un lot DTS
> > > - la SP exportFacture est la suivante
> > >
> > > CREATE PROCEDURE dbo.exportFactures
> > >
> > > @package varchar(40)
> > >
> > > as
> > >
> > > declare @sql varchar(500)
> > >
> > > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost
/U
> > > utilisateur/P password /N '+@package+''''
> > >
> > > execute (@sql)
> > > GO
> > >
> > >
> > > Le lot DTS ne fait qu'établir une connexion avec la base de données et
> > > écrire le contenu d'une table dans un fichier texte nommé et
spécifique
> > >
> > >
> > > Le problème est que rien n'est écrit dans la fichier text.
> > >
> > > Pourtant :
> > > - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> > > serveur de developpement cela fonctionne aussi en passant par
l'applicatif
> > > vb.
> > >
> > > J'avoue que je ne sais plus trop où chercher l'erreur.
> > >
> > > Merci
> > >
> > >
> >
> >
> >
Donc après lecture du message d'erreur le problème vient du fait que le dts
qui est lancé sur le serveur n'arrive pas à écrire dans un fichier situé sur
un poste local.
Ce qui semble à peu normal.
Existe-t-il un moyen de faire en sorte que le dts lancé par vb écrive dans
un fichier local ?
Merci
"Christian Robert" <christian.robert@winwise.fr (sansspam)> wrote in message
news:AFE26DF8-4656-4121-955E-3BA4C27C5C47@microsoft.com...
> Là, il s'agirait plutôt du compte de service de Sql Server
>
> Il faut d'une part que vous soyez connecté en tant que sysadmin, d'autre
> part que le compte de service de SQL Server (service MSSQLSERVER) est bien
le
> droit d'écrire ce fichier.
>
> D'autre part il serait judicieux de lancer cette commande dans l'analyseur
> de requête en se loggant avec le même compte pour avoir les messages
d'erreur.
>
> --
> Cordialement
>
> Christian Robert
> Consultant - Formateur chez Winwise
> MCT - MCDBA - MCSD
>
>
> "Romelard Fabrice [MVP]" a écrit :
>
> > Bonjour,
> >
> > Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
d'écrire
> > (ou de créer) le fichier voulu.
> > Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> > sécurité, ce qui n'est pas forcément le cas avec le planificateur.
> >
> > --
> > Cordialement.
> >
> > Romelard Fabrice [MVP]
> >
> > "John" <john@nospam.com> a écrit dans le message de news:
> > %23WsU2VkNGHA.720@TK2MSFTNGP14.phx.gbl...
> > > Bonjour,
> > >
> > > j'ai un problème que je n'arrive pas à régler.
> > >
> > > J'ai un programme vb qui lance un dts à peu près de cette façon
> > >
> > > cmd.CommandText = "exportFactures "
> > > Set cmd.ActiveConnection = cnA
> > > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > > cmd.CommandType = adCmdStoredProc
> > > cmd.parameters.Refresh
> > >
> > > cmd("@package") = PackageName
> > > Set rst = cmd.Execute
> > > rst.Close
> > >
> > > où :
> > > - PackageName est le nom d'un lot DTS
> > > - la SP exportFacture est la suivante
> > >
> > > CREATE PROCEDURE dbo.exportFactures
> > >
> > > @package varchar(40)
> > >
> > > as
> > >
> > > declare @sql varchar(500)
> > >
> > > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost
/U
> > > utilisateur/P password /N '+@package+''''
> > >
> > > execute (@sql)
> > > GO
> > >
> > >
> > > Le lot DTS ne fait qu'établir une connexion avec la base de données et
> > > écrire le contenu d'une table dans un fichier texte nommé et
spécifique
> > >
> > >
> > > Le problème est que rien n'est écrit dans la fichier text.
> > >
> > > Pourtant :
> > > - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> > > serveur de developpement cela fonctionne aussi en passant par
l'applicatif
> > > vb.
> > >
> > > J'avoue que je ne sais plus trop où chercher l'erreur.
> > >
> > > Merci
> > >
> > >
> >
> >
> >
Donc après lecture du message d'erreur le problème vient du fait que le dts
qui est lancé sur le serveur n'arrive pas à écrire dans un fichier situé sur
un poste local.
Ce qui semble à peu normal.
Existe-t-il un moyen de faire en sorte que le dts lancé par vb écrive dans
un fichier local ?
Merci
"Christian Robert" (sansspam)> wrote in message
news:
> Là, il s'agirait plutôt du compte de service de Sql Server
>
> Il faut d'une part que vous soyez connecté en tant que sysadmin, d'autre
> part que le compte de service de SQL Server (service MSSQLSERVER) est bien
le
> droit d'écrire ce fichier.
>
> D'autre part il serait judicieux de lancer cette commande dans l'analyseur
> de requête en se loggant avec le même compte pour avoir les messages
d'erreur.
>
> --
> Cordialement
>
> Christian Robert
> Consultant - Formateur chez Winwise
> MCT - MCDBA - MCSD
>
>
> "Romelard Fabrice [MVP]" a écrit :
>
> > Bonjour,
> >
> > Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
d'écrire
> > (ou de créer) le fichier voulu.
> > Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> > sécurité, ce qui n'est pas forcément le cas avec le planificateur.
> >
> > --
> > Cordialement.
> >
> > Romelard Fabrice [MVP]
> >
> > "John" a écrit dans le message de news:
> > %
> > > Bonjour,
> > >
> > > j'ai un problème que je n'arrive pas à régler.
> > >
> > > J'ai un programme vb qui lance un dts à peu près de cette façon
> > >
> > > cmd.CommandText = "exportFactures "
> > > Set cmd.ActiveConnection = cnA
> > > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > > cmd.CommandType = adCmdStoredProc
> > > cmd.parameters.Refresh
> > >
> > > cmd("@package") = PackageName
> > > Set rst = cmd.Execute
> > > rst.Close
> > >
> > > où :
> > > - PackageName est le nom d'un lot DTS
> > > - la SP exportFacture est la suivante
> > >
> > > CREATE PROCEDURE dbo.exportFactures
> > >
> > > @package varchar(40)
> > >
> > > as
> > >
> > > declare @sql varchar(500)
> > >
> > > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S localhost
/U
> > > utilisateur/P password /N '+@package+''''
> > >
> > > execute (@sql)
> > > GO
> > >
> > >
> > > Le lot DTS ne fait qu'établir une connexion avec la base de données et
> > > écrire le contenu d'une table dans un fichier texte nommé et
spécifique
> > >
> > >
> > > Le problème est que rien n'est écrit dans la fichier text.
> > >
> > > Pourtant :
> > > - si je lance le DTS directement cela fonctionne et, de plus, sur mon
> > > serveur de developpement cela fonctionne aussi en passant par
l'applicatif
> > > vb.
> > >
> > > J'avoue que je ne sais plus trop où chercher l'erreur.
> > >
> > > Merci
> > >
> > >
> >
> >
> >
L'éxecution d'un lot dts via DTSrun se fait toujours dans le contexte du
serveur...
Le mieux en fait est de passer toujours par des chemin UNC, par exemple :
monserveurmonpartagemonfichier
Ca marchera en local ou sur le serveur à condition de lui donner des droit
sur le partage... çà évite les problèmes de DTS à ce niveau là...
Autre solution passer le chemin sous forme de paramètre du lot...
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
"John" a écrit :
> Donc après lecture du message d'erreur le problème vient du fait que le
> qui est lancé sur le serveur n'arrive pas à écrire dans un fichier situé
> un poste local.
> Ce qui semble à peu normal.
> Existe-t-il un moyen de faire en sorte que le dts lancé par vb écrive
> un fichier local ?
>
> Merci
>
> "Christian Robert" (sansspam)> wrote in
> news:
> > Là, il s'agirait plutôt du compte de service de Sql Server
> >
> > Il faut d'une part que vous soyez connecté en tant que sysadmin,
> > part que le compte de service de SQL Server (service MSSQLSERVER) est
> le
> > droit d'écrire ce fichier.
> >
> > D'autre part il serait judicieux de lancer cette commande dans
> > de requête en se loggant avec le même compte pour avoir les messages
> d'erreur.
> >
> > --
> > Cordialement
> >
> > Christian Robert
> > Consultant - Formateur chez Winwise
> > MCT - MCDBA - MCSD
> >
> >
> > "Romelard Fabrice [MVP]" a écrit :
> >
> > > Bonjour,
> > >
> > > Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> d'écrire
> > > (ou de créer) le fichier voulu.
> > > Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> > > sécurité, ce qui n'est pas forcément le cas avec le planificateur.
> > >
> > > --
> > > Cordialement.
> > >
> > > Romelard Fabrice [MVP]
> > >
> > > "John" a écrit dans le message de news:
> > > %
> > > > Bonjour,
> > > >
> > > > j'ai un problème que je n'arrive pas à régler.
> > > >
> > > > J'ai un programme vb qui lance un dts à peu près de cette façon
> > > >
> > > > cmd.CommandText = "exportFactures "
> > > > Set cmd.ActiveConnection = cnA
> > > > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > > > cmd.CommandType = adCmdStoredProc
> > > > cmd.parameters.Refresh
> > > >
> > > > cmd("@package") = PackageName
> > > > Set rst = cmd.Execute
> > > > rst.Close
> > > >
> > > > où :
> > > > - PackageName est le nom d'un lot DTS
> > > > - la SP exportFacture est la suivante
> > > >
> > > > CREATE PROCEDURE dbo.exportFactures
> > > >
> > > > @package varchar(40)
> > > >
> > > > as
> > > >
> > > > declare @sql varchar(500)
> > > >
> > > > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S
> /U
> > > > utilisateur/P password /N '+@package+''''
> > > >
> > > > execute (@sql)
> > > > GO
> > > >
> > > >
> > > > Le lot DTS ne fait qu'établir une connexion avec la base de
> > > > écrire le contenu d'une table dans un fichier texte nommé et
> spécifique
> > > >
> > > >
> > > > Le problème est que rien n'est écrit dans la fichier text.
> > > >
> > > > Pourtant :
> > > > - si je lance le DTS directement cela fonctionne et, de plus, sur
> > > > serveur de developpement cela fonctionne aussi en passant par
> l'applicatif
> > > > vb.
> > > >
> > > > J'avoue que je ne sais plus trop où chercher l'erreur.
> > > >
> > > > Merci
> > > >
> > > >
> > >
> > >
> > >
>
>
>
L'éxecution d'un lot dts via DTSrun se fait toujours dans le contexte du
serveur...
Le mieux en fait est de passer toujours par des chemin UNC, par exemple :
\monserveurmonpartagemonfichier
Ca marchera en local ou sur le serveur à condition de lui donner des droit
sur le partage... çà évite les problèmes de DTS à ce niveau là...
Autre solution passer le chemin sous forme de paramètre du lot...
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
"John" a écrit :
> Donc après lecture du message d'erreur le problème vient du fait que le
> qui est lancé sur le serveur n'arrive pas à écrire dans un fichier situé
> un poste local.
> Ce qui semble à peu normal.
> Existe-t-il un moyen de faire en sorte que le dts lancé par vb écrive
> un fichier local ?
>
> Merci
>
> "Christian Robert" <christian.robert@winwise.fr (sansspam)> wrote in
> news:AFE26DF8-4656-4121-955E-3BA4C27C5C47@microsoft.com...
> > Là, il s'agirait plutôt du compte de service de Sql Server
> >
> > Il faut d'une part que vous soyez connecté en tant que sysadmin,
> > part que le compte de service de SQL Server (service MSSQLSERVER) est
> le
> > droit d'écrire ce fichier.
> >
> > D'autre part il serait judicieux de lancer cette commande dans
> > de requête en se loggant avec le même compte pour avoir les messages
> d'erreur.
> >
> > --
> > Cordialement
> >
> > Christian Robert
> > Consultant - Formateur chez Winwise
> > MCT - MCDBA - MCSD
> >
> >
> > "Romelard Fabrice [MVP]" a écrit :
> >
> > > Bonjour,
> > >
> > > Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> d'écrire
> > > (ou de créer) le fichier voulu.
> > > Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> > > sécurité, ce qui n'est pas forcément le cas avec le planificateur.
> > >
> > > --
> > > Cordialement.
> > >
> > > Romelard Fabrice [MVP]
> > >
> > > "John" <john@nospam.com> a écrit dans le message de news:
> > > %23WsU2VkNGHA.720@TK2MSFTNGP14.phx.gbl...
> > > > Bonjour,
> > > >
> > > > j'ai un problème que je n'arrive pas à régler.
> > > >
> > > > J'ai un programme vb qui lance un dts à peu près de cette façon
> > > >
> > > > cmd.CommandText = "exportFactures "
> > > > Set cmd.ActiveConnection = cnA
> > > > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > > > cmd.CommandType = adCmdStoredProc
> > > > cmd.parameters.Refresh
> > > >
> > > > cmd("@package") = PackageName
> > > > Set rst = cmd.Execute
> > > > rst.Close
> > > >
> > > > où :
> > > > - PackageName est le nom d'un lot DTS
> > > > - la SP exportFacture est la suivante
> > > >
> > > > CREATE PROCEDURE dbo.exportFactures
> > > >
> > > > @package varchar(40)
> > > >
> > > > as
> > > >
> > > > declare @sql varchar(500)
> > > >
> > > > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S
> /U
> > > > utilisateur/P password /N '+@package+''''
> > > >
> > > > execute (@sql)
> > > > GO
> > > >
> > > >
> > > > Le lot DTS ne fait qu'établir une connexion avec la base de
> > > > écrire le contenu d'une table dans un fichier texte nommé et
> spécifique
> > > >
> > > >
> > > > Le problème est que rien n'est écrit dans la fichier text.
> > > >
> > > > Pourtant :
> > > > - si je lance le DTS directement cela fonctionne et, de plus, sur
> > > > serveur de developpement cela fonctionne aussi en passant par
> l'applicatif
> > > > vb.
> > > >
> > > > J'avoue que je ne sais plus trop où chercher l'erreur.
> > > >
> > > > Merci
> > > >
> > > >
> > >
> > >
> > >
>
>
>
L'éxecution d'un lot dts via DTSrun se fait toujours dans le contexte du
serveur...
Le mieux en fait est de passer toujours par des chemin UNC, par exemple :
monserveurmonpartagemonfichier
Ca marchera en local ou sur le serveur à condition de lui donner des droit
sur le partage... çà évite les problèmes de DTS à ce niveau là...
Autre solution passer le chemin sous forme de paramètre du lot...
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
"John" a écrit :
> Donc après lecture du message d'erreur le problème vient du fait que le
> qui est lancé sur le serveur n'arrive pas à écrire dans un fichier situé
> un poste local.
> Ce qui semble à peu normal.
> Existe-t-il un moyen de faire en sorte que le dts lancé par vb écrive
> un fichier local ?
>
> Merci
>
> "Christian Robert" (sansspam)> wrote in
> news:
> > Là, il s'agirait plutôt du compte de service de Sql Server
> >
> > Il faut d'une part que vous soyez connecté en tant que sysadmin,
> > part que le compte de service de SQL Server (service MSSQLSERVER) est
> le
> > droit d'écrire ce fichier.
> >
> > D'autre part il serait judicieux de lancer cette commande dans
> > de requête en se loggant avec le même compte pour avoir les messages
> d'erreur.
> >
> > --
> > Cordialement
> >
> > Christian Robert
> > Consultant - Formateur chez Winwise
> > MCT - MCDBA - MCSD
> >
> >
> > "Romelard Fabrice [MVP]" a écrit :
> >
> > > Bonjour,
> > >
> > > Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> d'écrire
> > > (ou de créer) le fichier voulu.
> > > Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> > > sécurité, ce qui n'est pas forcément le cas avec le planificateur.
> > >
> > > --
> > > Cordialement.
> > >
> > > Romelard Fabrice [MVP]
> > >
> > > "John" a écrit dans le message de news:
> > > %
> > > > Bonjour,
> > > >
> > > > j'ai un problème que je n'arrive pas à régler.
> > > >
> > > > J'ai un programme vb qui lance un dts à peu près de cette façon
> > > >
> > > > cmd.CommandText = "exportFactures "
> > > > Set cmd.ActiveConnection = cnA
> > > > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > > > cmd.CommandType = adCmdStoredProc
> > > > cmd.parameters.Refresh
> > > >
> > > > cmd("@package") = PackageName
> > > > Set rst = cmd.Execute
> > > > rst.Close
> > > >
> > > > où :
> > > > - PackageName est le nom d'un lot DTS
> > > > - la SP exportFacture est la suivante
> > > >
> > > > CREATE PROCEDURE dbo.exportFactures
> > > >
> > > > @package varchar(40)
> > > >
> > > > as
> > > >
> > > > declare @sql varchar(500)
> > > >
> > > > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S
> /U
> > > > utilisateur/P password /N '+@package+''''
> > > >
> > > > execute (@sql)
> > > > GO
> > > >
> > > >
> > > > Le lot DTS ne fait qu'établir une connexion avec la base de
> > > > écrire le contenu d'une table dans un fichier texte nommé et
> spécifique
> > > >
> > > >
> > > > Le problème est que rien n'est écrit dans la fichier text.
> > > >
> > > > Pourtant :
> > > > - si je lance le DTS directement cela fonctionne et, de plus, sur
> > > > serveur de developpement cela fonctionne aussi en passant par
> l'applicatif
> > > > vb.
> > > >
> > > > J'avoue que je ne sais plus trop où chercher l'erreur.
> > > >
> > > > Merci
> > > >
> > > >
> > >
> > >
> > >
>
>
>
Merci,
mais d'après ce que je comprends là, on va écrire sur le serveur.
Ce que je souhaiterais c'est que le fichier soit écrit en local sur le poste
client qui le lance.
Pas toujours le même poste client d'ailleurs.
Que ce fichier soit dans c:monrepertoiremonfichier sur le poste local.
C'est possible ?
"Christian Robert" (sansspam)> wrote in message
news:
> L'éxecution d'un lot dts via DTSrun se fait toujours dans le contexte du
> serveur...
>
> Le mieux en fait est de passer toujours par des chemin UNC, par exemple :
> monserveurmonpartagemonfichier
>
> Ca marchera en local ou sur le serveur à condition de lui donner des droit
> sur le partage... çà évite les problèmes de DTS à ce niveau là...
>
> Autre solution passer le chemin sous forme de paramètre du lot...
>
> --
> Cordialement
>
> Christian Robert
> Consultant - Formateur chez Winwise
> MCT - MCDBA - MCSD
>
>
> "John" a écrit :
>
> > Donc après lecture du message d'erreur le problème vient du fait que le
dts
> > qui est lancé sur le serveur n'arrive pas à écrire dans un fichier situé
sur
> > un poste local.
> > Ce qui semble à peu normal.
> > Existe-t-il un moyen de faire en sorte que le dts lancé par vb écrive
dans
> > un fichier local ?
> >
> > Merci
> >
> > "Christian Robert" (sansspam)> wrote in
message
> > news:
> > > Là, il s'agirait plutôt du compte de service de Sql Server
> > >
> > > Il faut d'une part que vous soyez connecté en tant que sysadmin,
d'autre
> > > part que le compte de service de SQL Server (service MSSQLSERVER) est
bien
> > le
> > > droit d'écrire ce fichier.
> > >
> > > D'autre part il serait judicieux de lancer cette commande dans
l'analyseur
> > > de requête en se loggant avec le même compte pour avoir les messages
> > d'erreur.
> > >
> > > --
> > > Cordialement
> > >
> > > Christian Robert
> > > Consultant - Formateur chez Winwise
> > > MCT - MCDBA - MCSD
> > >
> > >
> > > "Romelard Fabrice [MVP]" a écrit :
> > >
> > > > Bonjour,
> > > >
> > > > Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> > d'écrire
> > > > (ou de créer) le fichier voulu.
> > > > Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> > > > sécurité, ce qui n'est pas forcément le cas avec le planificateur.
> > > >
> > > > --
> > > > Cordialement.
> > > >
> > > > Romelard Fabrice [MVP]
> > > >
> > > > "John" a écrit dans le message de news:
> > > > %
> > > > > Bonjour,
> > > > >
> > > > > j'ai un problème que je n'arrive pas à régler.
> > > > >
> > > > > J'ai un programme vb qui lance un dts à peu près de cette façon
> > > > >
> > > > > cmd.CommandText = "exportFactures "
> > > > > Set cmd.ActiveConnection = cnA
> > > > > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > > > > cmd.CommandType = adCmdStoredProc
> > > > > cmd.parameters.Refresh
> > > > >
> > > > > cmd("@package") = PackageName
> > > > > Set rst = cmd.Execute
> > > > > rst.Close
> > > > >
> > > > > où :
> > > > > - PackageName est le nom d'un lot DTS
> > > > > - la SP exportFacture est la suivante
> > > > >
> > > > > CREATE PROCEDURE dbo.exportFactures
> > > > >
> > > > > @package varchar(40)
> > > > >
> > > > > as
> > > > >
> > > > > declare @sql varchar(500)
> > > > >
> > > > > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S
localhost
> > /U
> > > > > utilisateur/P password /N '+@package+''''
> > > > >
> > > > > execute (@sql)
> > > > > GO
> > > > >
> > > > >
> > > > > Le lot DTS ne fait qu'établir une connexion avec la base de
données et
> > > > > écrire le contenu d'une table dans un fichier texte nommé et
> > spécifique
> > > > >
> > > > >
> > > > > Le problème est que rien n'est écrit dans la fichier text.
> > > > >
> > > > > Pourtant :
> > > > > - si je lance le DTS directement cela fonctionne et, de plus, sur
mon
> > > > > serveur de developpement cela fonctionne aussi en passant par
> > l'applicatif
> > > > > vb.
> > > > >
> > > > > J'avoue que je ne sais plus trop où chercher l'erreur.
> > > > >
> > > > > Merci
> > > > >
> > > > >
> > > >
> > > >
> > > >
> >
> >
> >
Merci,
mais d'après ce que je comprends là, on va écrire sur le serveur.
Ce que je souhaiterais c'est que le fichier soit écrit en local sur le poste
client qui le lance.
Pas toujours le même poste client d'ailleurs.
Que ce fichier soit dans c:monrepertoiremonfichier sur le poste local.
C'est possible ?
"Christian Robert" <christian.robert@winwise.fr (sansspam)> wrote in message
news:8893929B-054C-4335-B677-FFF12EC4559E@microsoft.com...
> L'éxecution d'un lot dts via DTSrun se fait toujours dans le contexte du
> serveur...
>
> Le mieux en fait est de passer toujours par des chemin UNC, par exemple :
> \monserveurmonpartagemonfichier
>
> Ca marchera en local ou sur le serveur à condition de lui donner des droit
> sur le partage... çà évite les problèmes de DTS à ce niveau là...
>
> Autre solution passer le chemin sous forme de paramètre du lot...
>
> --
> Cordialement
>
> Christian Robert
> Consultant - Formateur chez Winwise
> MCT - MCDBA - MCSD
>
>
> "John" a écrit :
>
> > Donc après lecture du message d'erreur le problème vient du fait que le
dts
> > qui est lancé sur le serveur n'arrive pas à écrire dans un fichier situé
sur
> > un poste local.
> > Ce qui semble à peu normal.
> > Existe-t-il un moyen de faire en sorte que le dts lancé par vb écrive
dans
> > un fichier local ?
> >
> > Merci
> >
> > "Christian Robert" <christian.robert@winwise.fr (sansspam)> wrote in
message
> > news:AFE26DF8-4656-4121-955E-3BA4C27C5C47@microsoft.com...
> > > Là, il s'agirait plutôt du compte de service de Sql Server
> > >
> > > Il faut d'une part que vous soyez connecté en tant que sysadmin,
d'autre
> > > part que le compte de service de SQL Server (service MSSQLSERVER) est
bien
> > le
> > > droit d'écrire ce fichier.
> > >
> > > D'autre part il serait judicieux de lancer cette commande dans
l'analyseur
> > > de requête en se loggant avec le même compte pour avoir les messages
> > d'erreur.
> > >
> > > --
> > > Cordialement
> > >
> > > Christian Robert
> > > Consultant - Formateur chez Winwise
> > > MCT - MCDBA - MCSD
> > >
> > >
> > > "Romelard Fabrice [MVP]" a écrit :
> > >
> > > > Bonjour,
> > > >
> > > > Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> > d'écrire
> > > > (ou de créer) le fichier voulu.
> > > > Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> > > > sécurité, ce qui n'est pas forcément le cas avec le planificateur.
> > > >
> > > > --
> > > > Cordialement.
> > > >
> > > > Romelard Fabrice [MVP]
> > > >
> > > > "John" <john@nospam.com> a écrit dans le message de news:
> > > > %23WsU2VkNGHA.720@TK2MSFTNGP14.phx.gbl...
> > > > > Bonjour,
> > > > >
> > > > > j'ai un problème que je n'arrive pas à régler.
> > > > >
> > > > > J'ai un programme vb qui lance un dts à peu près de cette façon
> > > > >
> > > > > cmd.CommandText = "exportFactures "
> > > > > Set cmd.ActiveConnection = cnA
> > > > > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > > > > cmd.CommandType = adCmdStoredProc
> > > > > cmd.parameters.Refresh
> > > > >
> > > > > cmd("@package") = PackageName
> > > > > Set rst = cmd.Execute
> > > > > rst.Close
> > > > >
> > > > > où :
> > > > > - PackageName est le nom d'un lot DTS
> > > > > - la SP exportFacture est la suivante
> > > > >
> > > > > CREATE PROCEDURE dbo.exportFactures
> > > > >
> > > > > @package varchar(40)
> > > > >
> > > > > as
> > > > >
> > > > > declare @sql varchar(500)
> > > > >
> > > > > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S
localhost
> > /U
> > > > > utilisateur/P password /N '+@package+''''
> > > > >
> > > > > execute (@sql)
> > > > > GO
> > > > >
> > > > >
> > > > > Le lot DTS ne fait qu'établir une connexion avec la base de
données et
> > > > > écrire le contenu d'une table dans un fichier texte nommé et
> > spécifique
> > > > >
> > > > >
> > > > > Le problème est que rien n'est écrit dans la fichier text.
> > > > >
> > > > > Pourtant :
> > > > > - si je lance le DTS directement cela fonctionne et, de plus, sur
mon
> > > > > serveur de developpement cela fonctionne aussi en passant par
> > l'applicatif
> > > > > vb.
> > > > >
> > > > > J'avoue que je ne sais plus trop où chercher l'erreur.
> > > > >
> > > > > Merci
> > > > >
> > > > >
> > > >
> > > >
> > > >
> >
> >
> >
Merci,
mais d'après ce que je comprends là, on va écrire sur le serveur.
Ce que je souhaiterais c'est que le fichier soit écrit en local sur le poste
client qui le lance.
Pas toujours le même poste client d'ailleurs.
Que ce fichier soit dans c:monrepertoiremonfichier sur le poste local.
C'est possible ?
"Christian Robert" (sansspam)> wrote in message
news:
> L'éxecution d'un lot dts via DTSrun se fait toujours dans le contexte du
> serveur...
>
> Le mieux en fait est de passer toujours par des chemin UNC, par exemple :
> monserveurmonpartagemonfichier
>
> Ca marchera en local ou sur le serveur à condition de lui donner des droit
> sur le partage... çà évite les problèmes de DTS à ce niveau là...
>
> Autre solution passer le chemin sous forme de paramètre du lot...
>
> --
> Cordialement
>
> Christian Robert
> Consultant - Formateur chez Winwise
> MCT - MCDBA - MCSD
>
>
> "John" a écrit :
>
> > Donc après lecture du message d'erreur le problème vient du fait que le
dts
> > qui est lancé sur le serveur n'arrive pas à écrire dans un fichier situé
sur
> > un poste local.
> > Ce qui semble à peu normal.
> > Existe-t-il un moyen de faire en sorte que le dts lancé par vb écrive
dans
> > un fichier local ?
> >
> > Merci
> >
> > "Christian Robert" (sansspam)> wrote in
message
> > news:
> > > Là, il s'agirait plutôt du compte de service de Sql Server
> > >
> > > Il faut d'une part que vous soyez connecté en tant que sysadmin,
d'autre
> > > part que le compte de service de SQL Server (service MSSQLSERVER) est
bien
> > le
> > > droit d'écrire ce fichier.
> > >
> > > D'autre part il serait judicieux de lancer cette commande dans
l'analyseur
> > > de requête en se loggant avec le même compte pour avoir les messages
> > d'erreur.
> > >
> > > --
> > > Cordialement
> > >
> > > Christian Robert
> > > Consultant - Formateur chez Winwise
> > > MCT - MCDBA - MCSD
> > >
> > >
> > > "Romelard Fabrice [MVP]" a écrit :
> > >
> > > > Bonjour,
> > > >
> > > > Le compte NT faisant fonctionner SQL Server Agent a-t'il le droit
> > d'écrire
> > > > (ou de créer) le fichier voulu.
> > > > Lors que vous l'exécutez à la main, vous utilisez votre contexte de
> > > > sécurité, ce qui n'est pas forcément le cas avec le planificateur.
> > > >
> > > > --
> > > > Cordialement.
> > > >
> > > > Romelard Fabrice [MVP]
> > > >
> > > > "John" a écrit dans le message de news:
> > > > %
> > > > > Bonjour,
> > > > >
> > > > > j'ai un problème que je n'arrive pas à régler.
> > > > >
> > > > > J'ai un programme vb qui lance un dts à peu près de cette façon
> > > > >
> > > > > cmd.CommandText = "exportFactures "
> > > > > Set cmd.ActiveConnection = cnA
> > > > > cmd.CommandTimeout = 900 ' 15 minutes de timeout
> > > > > cmd.CommandType = adCmdStoredProc
> > > > > cmd.parameters.Refresh
> > > > >
> > > > > cmd("@package") = PackageName
> > > > > Set rst = cmd.Execute
> > > > > rst.Close
> > > > >
> > > > > où :
> > > > > - PackageName est le nom d'un lot DTS
> > > > > - la SP exportFacture est la suivante
> > > > >
> > > > > CREATE PROCEDURE dbo.exportFactures
> > > > >
> > > > > @package varchar(40)
> > > > >
> > > > > as
> > > > >
> > > > > declare @sql varchar(500)
> > > > >
> > > > > set @sql='exec master.dbo.xp_cmdshell '+''''+'DTSRun.exe /S
localhost
> > /U
> > > > > utilisateur/P password /N '+@package+''''
> > > > >
> > > > > execute (@sql)
> > > > > GO
> > > > >
> > > > >
> > > > > Le lot DTS ne fait qu'établir une connexion avec la base de
données et
> > > > > écrire le contenu d'une table dans un fichier texte nommé et
> > spécifique
> > > > >
> > > > >
> > > > > Le problème est que rien n'est écrit dans la fichier text.
> > > > >
> > > > > Pourtant :
> > > > > - si je lance le DTS directement cela fonctionne et, de plus, sur
mon
> > > > > serveur de developpement cela fonctionne aussi en passant par
> > l'applicatif
> > > > > vb.
> > > > >
> > > > > J'avoue que je ne sais plus trop où chercher l'erreur.
> > > > >
> > > > > Merci
> > > > >
> > > > >
> > > >
> > > >
> > > >
> >
> >
> >