[SQL-ADODB] Insérer en batch dans base SQL via AT

Insérer en batch dans base SQL via AT [SQL-ADODB] - SQL/NoSQL - Programmation

Marsh Posté le 26-09-2004 à 15:10:08    

Salut,
 
J'ai un énorme souci au boulot avec un projet "récupéré" à base de WinNT/vbs/SQL server.
(voir ce topic sur "Windows Soft & Réseaux" pour le détail de la chose :D)
 
En fait le pb apparait composite, j'ai donc plusieurs question portant sur plusieurs domaines. (je fais donc 2 topics qui se ressemblent dans programmation, mais ce ne sont pas les mêmes questions, sisi regardez :D)
 
La problématique : un script vbs est executé sur un serveur NT par le planificateur de taches AT, prenant un fichier, le parsant, insérant des données dans un base SQL, et finissant par effacer ce fichier. Les insertions sont faites par une fonction makeRS(requeteSQL), appellée à divers endroits.
 

Code :
  1. Public Function makeRS(sql)
  2.     Dim conn
  3.     Dim stmt
  4.     Dim rs
  5.     Set conn = CreateObject("ADODB.Connection" )
  6.     conn.Open ConnectionString
  7.     Set stmt = CreateObject("ADODB.Command" )
  8.     Set stmt.ActiveConnection = conn
  9.     stmt.CommandType = adCmdText
  10.     stmt.Commandtext = sql
  11.     Set rs = CreateObject("ADODB.Recordset" )
  12.     With rs
  13.       .CursorLocation = adUseClient
  14.       .Open stmt, , adOpenStatic, adLockOptimistic
  15.       Set .ActiveConnection = Nothing
  16.     End With
  17.     Set makeRS = rs
  18.     Set stmt = Nothing
  19.   End Function


 
Lancé par le planificateur lorsqu'il y a une session WinNT ouverte, le vbs s'éxecute sans souci. Lancé par ce même planificateur mais sans session ouverte il s'éxecute mais n'insère pas dans la base.
 
Donc ma question SQL-ADODB : pourquoi les insertions marchent t elles quand je suis loggé, et pas quand personne ne l'est? :D
 
Merci de m'aider à y voir un peu plus clair. :sweat:


Message édité par Leg9 le 26-09-2004 à 15:10:44
Reply

Marsh Posté le 26-09-2004 à 15:10:08   

Reply

Marsh Posté le 26-09-2004 à 19:37:17    

up :sweat:

Reply

Marsh Posté le 26-09-2004 à 21:21:48    

Lors de la création de la tâche planifiée tu peux spécifier sous quelle session utilisateur celui-ci va s'executer.

Reply

Marsh Posté le 26-09-2004 à 21:24:40    

Vrai? :)
Attention je passe par "AT", pas par le planificateur de taches "graphique".
Quelle est la marche à suivre dans ce cas de figure? :)

Reply

Marsh Posté le 26-09-2004 à 21:25:11    

Quant aux problème de droits, il vient peut être du fait que ta reqûete nécessite à l'utilisateur du client oracle  de faire partie du groupe ORA_DBA (cf gest. de l'ordinateur).
il doit y avoir un fichier log

Reply

Marsh Posté le 26-09-2004 à 21:32:44    

Reply

Marsh Posté le 26-09-2004 à 21:34:28    

Je n'ai pas tout compris, je le crains... :D
 
Oracle? C'est un serveur SQL server Microsoft, donc je ne vois pas bien là...
L'utilisateur faisant la requète est celui indiqué dans la ligne "connectionString" qui contient les coordonnées de la base et les données de login/pass.
Le user sous lequel j'était connecté lorsque ça marchait n'avait pas de droits sur la base lui (il me semble).
 
(rhaaa... je suis développeur moi, pas admin, pourquoi il faut que ça me tombe dessus? :cry: )

Reply

Marsh Posté le 26-09-2004 à 21:37:39    

Je vois que c'est pour XP là, ça existe sous NT? :??:

Reply

Marsh Posté le 26-09-2004 à 21:39:04    

oupss oublie l'histoire d'ora_dba , j'avais pas vu sqlserver !
essaye de spécifier un user/mdp à la création du job, a mon avis c'est une piste

Reply

Marsh Posté le 26-09-2004 à 21:42:17    

oulaa sur NT :/  
tu peux essayer de récuperer schtasks depuis un xp  
sinon il ya toujour moyen d'ouvir une session en inserant un :
net use \\nom_de_la_machine\ipc$ mdp /u:user avant l'execution du script

Reply

Marsh Posté le 26-09-2004 à 21:42:17   

Reply

Marsh Posté le 26-09-2004 à 21:42:30    

DjobaDjobi a écrit :

oupss oublie l'histoire d'ora_dba , j'avais pas vu sqlserver !
essaye de spécifier un user/mdp à la création du job, a mon avis c'est une piste


Yep, je peux essayer de voir ça dans les options d'AT.
A mon sens c'est soit ça, soit un service genre ADODB qui ne se lance que si une session est ouverte.
Merci. :)
 
Le souci c'est que ce n'est pas pour un TP là, mais pour un client. Les clients n'aiment pas trop les "J'ai une piste...", ils préfèrent "J'ai une solution!" :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed