IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

path dans requete


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Points : 133
    Points
    133
    Par défaut path dans requete
    bonjour,

    pour restorer une base je lance la requete suivante (avec osql) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    restore database ma_base from disk='C:\Program Files (x86)\mon_rep\ma_base' with replace,
    move 'ma_base_data' to 'C:\Program Files (x86)\mon_rep\ma_base_data.mdf' , 
    move 'ma_base_log' to 'C:\Program Files (x86)\mon_rep\ma_base_log.ldf'
    mais suivant que c'est un windows 64 bits ou pas le chemin du program file n'est pas le meme, je voulais savoir si dans la requete je pouvais mettre le 'path' du repertoire "program files" genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "restore database ma_base from disk='$programfile\mon_rep\ma_base"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "restore database ma_base from disk='$winsys\mon_rep\ma_base"
    merci

    greg

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Quelle version de SQL Server ?

    ++

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Points : 133
    Points
    133
    Par défaut
    ms sql 2000

    si tu demandes la version, je sens que ça sens pas bon....

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Quelle est l'instruction utilisée pour exécuter la sauvegarde ?
    Avez-vous vérifié que le fichier existe ?

    @++

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Points : 133
    Points
    133
    Par défaut
    le fichier existe, le probleme c'est que l'installshield met la sauvegarde dans le repertoire programfiles de windows. mais quand moi j'utilise la requete, actuelle, j'ai une requete pour windows32 bit et une autre pour le 64 bits a cause du chemin "c:\program files" et 'c:\program files (x86) qui sont pas identique pour les 2 systemes. et je voudrais avoir juste une seule requete en pouvant mettre par exemple $pf et qu'il mettent lui meme le bon cemin du "program file"...

  6. #6
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Ceci devrait convenir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    cls
    @echo off
     
    if not exist "%ProgramFiles(x86)%Microsoft SQL Server" (
    set ProgRoot=%ProgramFiles%
    ) else (
    set ProgRoot=%ProgramFiles(x86)%
    )
     
    osql -E -Q "RESTORE DATABASE ma_base FROM disk='C:\%progRoot%\mon_rep\ma_base.BAK'" .....
    ++

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Points : 133
    Points
    133
    Par défaut
    oki merci, mais il existe pas une moyen de recuperer les "path" des repertoires windows ? comme le repertoire system ou mes document, etc. ?

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par exyacc Voir le message
    oki merci, mais il existe pas une moyen de recuperer les "path" des repertoires windows ? comme le repertoire system ou mes document, etc. ?
    Par exemple,pour récupérer le répertoire Program Files, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xp_cmdshell'set program files'
    

    Sinon, la question est "pourquoi diantre laissez vous les fichiers de données des instances Sql Server sous Program Files" ? (x86 ou pas).

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Points : 133
    Points
    133
    Par défaut
    parceque je mets mon applic dans le repertoire c:\program files\mon applic et que je mets les fichiers de la base de données au meme endroit...faut pas ?

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par exyacc Voir le message
    parceque je mets mon applic dans le repertoire c:\program files\mon applic et que je mets les fichiers de la base de données au meme endroit...faut pas ?

    A première vue, cela semble en effet complétement absurde. (pour rester poli).

    Une appli dépendant éventuellement d'une base de données (c'est le cas ici), mais le stockage physique de cette base ne dépendant que du serveur de base, je ne vois pas du tout l'interêt de ce genre d'approche.

    Je suppose qu'elle est motivée par une raison particuliére mais j'ai beau réfléchir je n'arrive pas à en imaginer une seule.

    Toutes proportions gardées, ce serait comme si on mettait des élements de l'OS sur le répertoire de l'appli sous prétexte qu'elle les utilise.

  11. #11
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Citation Envoyé par exyacc Voir le message
    parceque je mets mon applic dans le repertoire c:\program files\mon applic et que je mets les fichiers de la base de données au meme endroit...faut pas ?
    Imaginez un instant que vous avez un crash disque ... vous perdez vos données et vous perdez vos sauvegardes .. vous avez tout gagné !!!

    ++

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Points : 133
    Points
    133
    Par défaut
    nan nan, en fait, j'ai pas besoin de sauvegarde de la base, elle sert uniquement a stocker des calculs pendant l'utilisation de l'application, si la base pète, j'en remet une vide.
    sinon je la met au même endroit que l'application car je vois pas l'intérêt de la mettre ailleurs dans ce cas, c'est comme si je stockais mon fichier de paramétrage dans un autre répertoire...
    bref pour en revenir au sujet je pensais qu'on pouvait avoir dans la requête des "abréviations" , par exemple dans INNO SETUP au lieu de mettre
    'C:\Program Files (x86)\mon_rep', on peut mettre {pf}\mon_rep , et suivant le system il va remplacer par c:\program files ou c:\program files (x86)...



    greg

  13. #13
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par exyacc Voir le message
    nan nan, en fait, j'ai pas besoin de sauvegarde de la base, elle sert uniquement a stocker des calculs pendant l'utilisation de l'application, si la base pète, j'en remet une vide.
    Excellent
    là tu as réussi à me donner un fou rire. Mais un fou rire à répétition rien qu'en pensant à tes deux petites phrases "si la base pète, j'en remet une vide".

    Non sérieux ... il faut écouter ce mikedavem et Bluedeep te disent c'est le strict minimum des bonnes pratiques quand on installe une base de données.
    Si tu veux de l'aide dans ce sens tu peux toujours poser des questions pour avoir de l'aide.
    A+

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par zinzineti Voir le message
    Excellent
    là tu as réussi à me donner un fou rire. Mais un fou rire à répétition rien qu'en pensant à tes deux petites phrases "si la base pète, j'en remet une vide".

    Non sérieux ... il faut écouter ce mikedavem et Bluedeep te disent c'est le strict minimum des bonnes pratiques quand on installe une base de données.
    Si tu veux de l'aide dans ce sens tu peux toujours poser des questions pour avoir de l'aide.
    A+
    bon d'accord, je veux bien mettre ma base de donnée qui est vide avant et après l'utilisation de l'application dans un autre répertoire (les micros ou elle est installée ne sont pas en réseau et n'ont qu'un dur), faire un backup de cette base vide pour ne pas risquer de perdre toutes les donnees qu'elle contient pas.... mais bon...j'vois pas trop l'intérêt... si le dur crash, il crashera, que mon aplic soit dans le même répertoire que la base ou dans un autre répertoire; mais si c'est comme ca qu'il faut faire...
    et si ca donne des fous rire, j'suis content d'apporter joie et bonne humeur dans vos foyers

  15. #15
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    nan nan, en fait, j'ai pas besoin de sauvegarde de la base, elle sert uniquement a stocker des calculs pendant l'utilisation de l'application, si la base pète, j'en remet une vide
    Quel intérêt de faire une sauvegarde dans ce cas ?

    Il est bien sûr possible de récupérer la valeur de la variable d'environnement système qui correspond au répertoire des programmes --> %ProgramFiles%.

    Pour une architecture 32 bits la valeur sera : "C:\Program Files"
    Pour une architecture 64 bits la valeur sera : "C:\Program Files (x86)". Une autre variable peut être utilisée avec une architecture 64 bits --> %ProgramW6432% qui a pour valeur "C:\Program Files".

    Il suffit d'utiliser osql de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    osql -E -Q "RESTORE DATABASE ma_base FROM disk='C:\%ProgramFiles%\mon_rep\ma_base.BAK'" .....
    ++

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Quel intérêt de faire une sauvegarde dans ce cas ?

    Il est bien sûr possible de récupérer la valeur de la variable d'environnement système qui correspond au répertoire des programmes --> %ProgramFiles%.

    Pour une architecture 32 bits la valeur sera : "C:\Program Files"
    Pour une architecture 64 bits la valeur sera : "C:\Program Files (x86)". Une autre variable peut être utilisée avec une architecture 64 bits --> %ProgramW6432% qui a pour valeur "C:\Program Files".

    Il suffit d'utiliser osql de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    osql -E -Q "RESTORE DATABASE ma_base FROM disk='C:\%ProgramFiles%\mon_rep\ma_base.BAK'" .....
    ++

    merci beaucoup, c'est ce que je cherchais.
    il y a un endroit ou sont listé ces "variables" ? pour avoir par exemple "mes documents" , repertoire windows system, etc ?

  17. #17
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    il y a un endroit ou sont listé ces "variables" ? pour avoir par exemple "mes documents" , repertoire windows system, etc ?
    Dans une invite de commande dos :

    ++

  18. #18
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Dans une fenêtre de commandes DOS, à l'invite, tapez SET : toutes les valeurs de toutes les variables d'environnement y sont listées

    @++

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Points : 133
    Points
    133
    Par défaut
    merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TRANSACTION] Erreur dans requete
    Par Tchinkatchuk dans le forum Langage SQL
    Réponses: 7
    Dernier message: 26/05/2005, 17h38
  2. [JAR]Class-Path dans le fichier Manifest
    Par Kleb dans le forum Général Java
    Réponses: 5
    Dernier message: 08/01/2005, 08h51
  3. GROUP_ID dans requete GROUP BY
    Par quemener dans le forum Oracle
    Réponses: 11
    Dernier message: 25/10/2004, 10h59
  4. Réponses: 5
    Dernier message: 27/07/2004, 17h04
  5. erreur syntaxe dans requete
    Par dom - ien moutiers dans le forum Requêtes
    Réponses: 5
    Dernier message: 19/04/2004, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo