Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2788 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°858049
Leg9
Fire walk with me
Posté le 26-09-2004 à 15:10:08  profilanswer
 

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
mood
Publicité
Posté le 26-09-2004 à 15:10:08  profilanswer
 

n°858216
Leg9
Fire walk with me
Posté le 26-09-2004 à 19:37:17  profilanswer
 

up :sweat:

n°858324
DjobaDjobi
Wanna turn up the heat?
Posté le 26-09-2004 à 21:21:48  profilanswer
 

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

n°858325
Leg9
Fire walk with me
Posté le 26-09-2004 à 21:24:40  profilanswer
 

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

n°858326
DjobaDjobi
Wanna turn up the heat?
Posté le 26-09-2004 à 21:25:11  profilanswer
 

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

n°858332
DjobaDjobi
Wanna turn up the heat?
Posté le 26-09-2004 à 21:32:44  profilanswer
 
n°858334
Leg9
Fire walk with me
Posté le 26-09-2004 à 21:34:28  profilanswer
 

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: )

n°858336
Leg9
Fire walk with me
Posté le 26-09-2004 à 21:37:39  profilanswer
 

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

n°858338
DjobaDjobi
Wanna turn up the heat?
Posté le 26-09-2004 à 21:39:04  profilanswer
 

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

n°858340
DjobaDjobi
Wanna turn up the heat?
Posté le 26-09-2004 à 21:42:17  profilanswer
 

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

mood
Publicité
Posté le 26-09-2004 à 21:42:17  profilanswer
 

n°858341
Leg9
Fire walk with me
Posté le 26-09-2004 à 21:42:30  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 

Sujets relatifs
tri de base de donnees[BATCH] faire une recherche
Récupérer le chemin d'une base Access en VBA[sql pgpmyadmin] probleme de connection a la base
SQL : Cast d'un long en varchar2fichier batch ds vb + commande shutdown
problème pour changer de place un fichier log sous SQL server 2000 ...Exporter une base Oracle 9i de 110Go
[SQL] Comment éviter une division par 0 (zéro) --> résolu par DECODE() 
Plus de sujets relatifs à : [SQL-ADODB] Insérer en batch dans base SQL via AT


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR