OVH Cloud OVH Cloud

LOT DTS + VB NET

7 réponses
Avatar
Denis
Salut à tous,

J'ai posté un message sur le forum VB à propos d'un problème rencontré avec
l'exécution d'un lot DTS.
N'ayant aucune réponse, je me retourne sur le forum SQL

voici le problème :

J'ai développé une appli qui est chargée de lancer un lot DTS dans SQLServer
2000.
Lorsque je teste mon appli sur ma machine de developpement (avec SQLServer
2000 Developper), tout fonctionne correctement si le nom de mon lot passé en
paramètre est exacte sinon, j'ai un message d'erreur comme quoi le lot n'est
pas valide.
Par contre, lorsque je teste mon appli sur une plateforme utilisateur
(quelque soit l'O.S.) mais sans SQLServer, mon appli me retourne l'erreur
suivante :

System.Runtime.InteropServices.COMException (0x80090010): Impossible de
supprimer le répertoire

Qu'est-ce que c'est que cela ? Surtout que mon lot ne fait qu'un simple
insert dans une table.

Lorsque c'est le nom de mon lot qui est erroné, j'ai bien un message me
disant que le lot est invalide (ou quelque chose dans ce genre).

J'ai installé sur ma plateforme utilisateur MSDE (au cas ou il manquerait
quelque chose dans mon kit d'install) mais cela ne change rien.
J'ai aussi essayé de chargé mon lot DTS à partir d'un fichier lot.dts mais
idem

J'utilise la fonction LoadFromSQLServer avec ses paramètres comme elle est
utilisée dans de nombreux exemples.

Quelqu'un a t-il une explication et le remède ?

Merci
Aloha, 2nis

7 réponses

Avatar
Cymryr
Je ne l'ai jamais deployé mais il ne me semble pas que les objets DTS
fassent parties de windows.
Pour creer un objet DTS il faut bien que cette librairie soit présente sur
la machine en question

Solution 1 : (un peu bourrin) installer les outils clients SQL sur la
machine en question
Solution 2 : recherchez un package de deploiement des composants necessaire,
ou juste une dll a inclure je pense(dtspkg.dll ??)
dans ton projet VB tu dois pouvoir lui dire d'inclure certaines choses dans
son package de deploiement (le vb c'est tres tres loins mais il me semble
qu'on doit pouvoir faire ca).


"Denis" wrote in message
news:e%
Salut à tous,

J'ai posté un message sur le forum VB à propos d'un problème rencontré


avec
l'exécution d'un lot DTS.
N'ayant aucune réponse, je me retourne sur le forum SQL

voici le problème :

J'ai développé une appli qui est chargée de lancer un lot DTS dans


SQLServer
2000.
Lorsque je teste mon appli sur ma machine de developpement (avec SQLServer
2000 Developper), tout fonctionne correctement si le nom de mon lot passé


en
paramètre est exacte sinon, j'ai un message d'erreur comme quoi le lot


n'est
pas valide.
Par contre, lorsque je teste mon appli sur une plateforme utilisateur
(quelque soit l'O.S.) mais sans SQLServer, mon appli me retourne l'erreur
suivante :

System.Runtime.InteropServices.COMException (0x80090010): Impossible de
supprimer le répertoire

Qu'est-ce que c'est que cela ? Surtout que mon lot ne fait qu'un simple
insert dans une table.

Lorsque c'est le nom de mon lot qui est erroné, j'ai bien un message me
disant que le lot est invalide (ou quelque chose dans ce genre).

J'ai installé sur ma plateforme utilisateur MSDE (au cas ou il manquerait
quelque chose dans mon kit d'install) mais cela ne change rien.
J'ai aussi essayé de chargé mon lot DTS à partir d'un fichier lot.dts mais
idem

J'utilise la fonction LoadFromSQLServer avec ses paramètres comme elle est
utilisée dans de nombreux exemples.

Quelqu'un a t-il une explication et le remède ?

Merci
Aloha, 2nis






Avatar
Oliv'
SAllut,
Ne serait-ce pas un pb d'accès au répertoire ou est généré le lot ?
Oliv'

"Denis" a écrit dans le message de news:
e%
Salut à tous,

J'ai posté un message sur le forum VB à propos d'un problème rencontré avec
l'exécution d'un lot DTS.
N'ayant aucune réponse, je me retourne sur le forum SQL

voici le problème :

J'ai développé une appli qui est chargée de lancer un lot DTS dans SQLServer
2000.
Lorsque je teste mon appli sur ma machine de developpement (avec SQLServer
2000 Developper), tout fonctionne correctement si le nom de mon lot passé en
paramètre est exacte sinon, j'ai un message d'erreur comme quoi le lot n'est
pas valide.
Par contre, lorsque je teste mon appli sur une plateforme utilisateur
(quelque soit l'O.S.) mais sans SQLServer, mon appli me retourne l'erreur
suivante :

System.Runtime.InteropServices.COMException (0x80090010): Impossible de
supprimer le répertoire

Qu'est-ce que c'est que cela ? Surtout que mon lot ne fait qu'un simple
insert dans une table.

Lorsque c'est le nom de mon lot qui est erroné, j'ai bien un message me
disant que le lot est invalide (ou quelque chose dans ce genre).

J'ai installé sur ma plateforme utilisateur MSDE (au cas ou il manquerait
quelque chose dans mon kit d'install) mais cela ne change rien.
J'ai aussi essayé de chargé mon lot DTS à partir d'un fichier lot.dts mais
idem

J'utilise la fonction LoadFromSQLServer avec ses paramètres comme elle est
utilisée dans de nombreux exemples.

Quelqu'un a t-il une explication et le remède ?

Merci
Aloha, 2nis
Avatar
Denis
Bonjour,

J'ai bien essayer la méthode "bourrin" avec MSDE mais sans succès.
La DLL dtspkg.dll est bien présente et c'est vrai que j'ai eu un mal fou à
l'installer (problème de langue, j'ai du créer un sous-répertoire 1036) mais
5 ou 6 autres dll devoient être installées et inscrites dans le registre au
préalable.

2nis.

"Cymryr" a écrit dans le message de
news:u6Nqd$
Je ne l'ai jamais deployé mais il ne me semble pas que les objets DTS
fassent parties de windows.
Pour creer un objet DTS il faut bien que cette librairie soit présente sur
la machine en question

Solution 1 : (un peu bourrin) installer les outils clients SQL sur la
machine en question
Solution 2 : recherchez un package de deploiement des composants


necessaire,
ou juste une dll a inclure je pense(dtspkg.dll ??)
dans ton projet VB tu dois pouvoir lui dire d'inclure certaines choses


dans
son package de deploiement (le vb c'est tres tres loins mais il me semble
qu'on doit pouvoir faire ca).


"Denis" wrote in message
news:e%
> Salut à tous,
>
> J'ai posté un message sur le forum VB à propos d'un problème rencontré
avec
> l'exécution d'un lot DTS.
> N'ayant aucune réponse, je me retourne sur le forum SQL
>
> voici le problème :
>
> J'ai développé une appli qui est chargée de lancer un lot DTS dans
SQLServer
> 2000.
> Lorsque je teste mon appli sur ma machine de developpement (avec


SQLServer
> 2000 Developper), tout fonctionne correctement si le nom de mon lot


passé
en
> paramètre est exacte sinon, j'ai un message d'erreur comme quoi le lot
n'est
> pas valide.
> Par contre, lorsque je teste mon appli sur une plateforme utilisateur
> (quelque soit l'O.S.) mais sans SQLServer, mon appli me retourne


l'erreur
> suivante :
>
> System.Runtime.InteropServices.COMException (0x80090010): Impossible de
> supprimer le répertoire
>
> Qu'est-ce que c'est que cela ? Surtout que mon lot ne fait qu'un simple
> insert dans une table.
>
> Lorsque c'est le nom de mon lot qui est erroné, j'ai bien un message me
> disant que le lot est invalide (ou quelque chose dans ce genre).
>
> J'ai installé sur ma plateforme utilisateur MSDE (au cas ou il


manquerait
> quelque chose dans mon kit d'install) mais cela ne change rien.
> J'ai aussi essayé de chargé mon lot DTS à partir d'un fichier lot.dts


mais
> idem
>
> J'utilise la fonction LoadFromSQLServer avec ses paramètres comme elle


est
> utilisée dans de nombreux exemples.
>
> Quelqu'un a t-il une explication et le remède ?
>
> Merci
> Aloha, 2nis
>
>
>
>




Avatar
Denis
Bonjour,

Le lot n'est pas stocké dans un répertoire mais dans une des bases système
de SQLServer (je ne sais plus laquelle)

2nis.

"Oliv'" <(supprimerceci) a écrit dans le
message de news:41f505c9$0$13257$
SAllut,
Ne serait-ce pas un pb d'accès au répertoire ou est généré le lot ?
Oliv'

"Denis" a écrit dans le message de news:
e%
Salut à tous,

J'ai posté un message sur le forum VB à propos d'un problème rencontré


avec
l'exécution d'un lot DTS.
N'ayant aucune réponse, je me retourne sur le forum SQL

voici le problème :

J'ai développé une appli qui est chargée de lancer un lot DTS dans


SQLServer
2000.
Lorsque je teste mon appli sur ma machine de developpement (avec SQLServer
2000 Developper), tout fonctionne correctement si le nom de mon lot passé


en
paramètre est exacte sinon, j'ai un message d'erreur comme quoi le lot


n'est
pas valide.
Par contre, lorsque je teste mon appli sur une plateforme utilisateur
(quelque soit l'O.S.) mais sans SQLServer, mon appli me retourne l'erreur
suivante :

System.Runtime.InteropServices.COMException (0x80090010): Impossible de
supprimer le répertoire

Qu'est-ce que c'est que cela ? Surtout que mon lot ne fait qu'un simple
insert dans une table.

Lorsque c'est le nom de mon lot qui est erroné, j'ai bien un message me
disant que le lot est invalide (ou quelque chose dans ce genre).

J'ai installé sur ma plateforme utilisateur MSDE (au cas ou il manquerait
quelque chose dans mon kit d'install) mais cela ne change rien.
J'ai aussi essayé de chargé mon lot DTS à partir d'un fichier lot.dts mais
idem

J'utilise la fonction LoadFromSQLServer avec ses paramètres comme elle est
utilisée dans de nombreux exemples.

Quelqu'un a t-il une explication et le remède ?

Merci
Aloha, 2nis







Avatar
Rebreyend Cyril
Bonjour,

Essaye de lancer le job plutot que le lot.

Dim oSQLSvr2 As SQLDMO.SQLServer2

Dim MyJob As SQLDMO.Job

Dim MySchedule As SQLDMO.JobSchedule

oSQLSvr2 = New SQLDMO.SQLServer2

oSQLSvr2.LoginSecure = True

oSQLSvr2.Connect("MATHON-BDD1")

MyJob = oSQLSvr2.JobServer.GetJobByID("B9685D5B767E194B9DE6C3329E4F0747")

If MyJob.CurrentRunStatus SQLDMO.SQLDMO_JOBEXECUTION_STATUS.SQLDMOJobExecution_Idle Then

MyJob.Start()

End If
Avatar
Denis
Bonjour,

Effectivement, il y a bien cette méthode mais elle n'est valable que si le
lot en question est dans la liste des travaux planifiés ce qui n'est pas
forcement mon cas.
De plus, j'ai besoin de recupérer la description de mon lot avant de
proposer à mon utilisateur son exécution.

2nis.

"Rebreyend Cyril" a écrit dans le message de
news:
Bonjour,

Essaye de lancer le job plutot que le lot.

Dim oSQLSvr2 As SQLDMO.SQLServer2

Dim MyJob As SQLDMO.Job

Dim MySchedule As SQLDMO.JobSchedule

oSQLSvr2 = New SQLDMO.SQLServer2

oSQLSvr2.LoginSecure = True

oSQLSvr2.Connect("MATHON-BDD1")

MyJob = oSQLSvr2.JobServer.GetJobByID("B9685D5B767E194B9DE6C3329E4F0747")

If MyJob.CurrentRunStatus > SQLDMO.SQLDMO_JOBEXECUTION_STATUS.SQLDMOJobExecution_Idle Then

MyJob.Start()

End If




Avatar
Med Bouchenafa
La description que tu fais de ton problème laisse penser que c'est problème
de sécurité
Lorsque tu exécutes un lot DTS, il ne s'exécute pas forcément dans le
contexte de sécurité du compte que tu as fourni dans la méthode
LoadFromSQLServer.
Mais bien dans le contexte de sécurité du compte qui exécute le programme
VB.NET


--
Bien cordialement
Med Bouchenafa


"Denis" a écrit dans le message de news:
e%
Salut à tous,

J'ai posté un message sur le forum VB à propos d'un problème rencontré
avec
l'exécution d'un lot DTS.
N'ayant aucune réponse, je me retourne sur le forum SQL

voici le problème :

J'ai développé une appli qui est chargée de lancer un lot DTS dans
SQLServer
2000.
Lorsque je teste mon appli sur ma machine de developpement (avec SQLServer
2000 Developper), tout fonctionne correctement si le nom de mon lot passé
en
paramètre est exacte sinon, j'ai un message d'erreur comme quoi le lot
n'est
pas valide.
Par contre, lorsque je teste mon appli sur une plateforme utilisateur
(quelque soit l'O.S.) mais sans SQLServer, mon appli me retourne l'erreur
suivante :

System.Runtime.InteropServices.COMException (0x80090010): Impossible de
supprimer le répertoire

Qu'est-ce que c'est que cela ? Surtout que mon lot ne fait qu'un simple
insert dans une table.

Lorsque c'est le nom de mon lot qui est erroné, j'ai bien un message me
disant que le lot est invalide (ou quelque chose dans ce genre).

J'ai installé sur ma plateforme utilisateur MSDE (au cas ou il manquerait
quelque chose dans mon kit d'install) mais cela ne change rien.
J'ai aussi essayé de chargé mon lot DTS à partir d'un fichier lot.dts mais
idem

J'utilise la fonction LoadFromSQLServer avec ses paramètres comme elle est
utilisée dans de nombreux exemples.

Quelqu'un a t-il une explication et le remède ?

Merci
Aloha, 2nis