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

Adaptive Server Enterprise Sybase Discussion :

Récupérer résultat d'appels système


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 29
    Points
    29
    Par défaut Récupérer résultat d'appels système
    Bonjour,

    Je suis sous ASE et je cherche à récupérer dans une table ou dans quelques exports que ce soit le résultat d'appels système comme sp_depends par exemple, pour des traitements ultérieurs.

    Merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Il y a vraiment toutes sortes de solutions (sauf récupérer les données directement dans une tables - ça c'est un peu plus compliqué).

    Faudrait connaitre l'environnement - p.ex. c'est du shell Unix, ou...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Environnement windows (Batch Dos) + Isql.

    Quels genres de solution voyez vous ? Car il ne me semble pas qu'il soit possible de récupérer la sortie d'un appel système directement en T-SQL, en créant une Procédure stockée ou autres :/

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    hello

    Il faudrait préciser un peu plus ce que vous voulez faire. De plus je ne comprends pas
    Car il ne me semble pas qu'il soit possible de récupérer la sortie d'un appel système directement en T-SQL, en créant une Procédure stockée ou autres
    Si le but est de récupérer le résultat d'appels de procs stockées dans une table, il est possible de créer des tables proxy basées sur des procédures stockées. Il y a un ou deux posts sur ce forum relatifs à ça.

    Il est également possible de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_helptext la_proc_qui_m_interesse
    et de mettre le code SQL dans le .bat, en enlevant les headers, le row count etc.
    Emmanuel T.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Je veux faire exactement ce que vous pensez Mais non pas avec des procédures stockées, mais avec des procédures systèmes.

    Par exemple récupérer le résultat d'un sp_depends TableName ou d'un sp_helprotect UserName, rédiriger leur sortie vers une table, une vue ou quelque chose de "manipulable".

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Une proc stockée ou une proc "système" c'est pas très differend, donc l'utilisation d'une table proxy mappée sur la RPC peut marcher dans certains cas.
    Le problème c'est si la proc renvoie plusieurs result set (comme p.ex. sp_help).

    Le plus simple est probablement d'écrire un peu de code, p.ex. en VB (ou perl, shell, etc) qui exécute la/les proc(s) et extrait les informations pertinentes pour faire un traitement plus avancé.

    Ou alors lire la source des procs systèmes que tu veux utiliser, et en extraire la partie dont tu as besoins pour insérer les données voulues...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Effectivement les procs systèmes que j'utilise renvoient plusieurs Resultsets.

    J'ai écrit un batch qui lance un Isql distant mais l'output ne me convient pas, je récupère toutes les entêtes, toutes les colonnes, tous les éléments d'interface (des tirets entre les noms de colonnes et les datas) etc.
    Il me semble complexe de parser correctement ce fichier ...



    Pour les sources des procs systèmes, il me semble qu'elles se trouvent dans la base sybsystemprocs, je vais regarder ça.

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Pour info, on peut supprimer les entêtes avec -b pour isql...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Merci, mon fichier d'output est déjà un peu plus convenable, cependant il reste souvent des dizaines d'espaces vides entre les données, et quelquefois le séparateur n'est pas inclus entre deux champs.

    Exemple :

    ............;Admin..............;............4578.....;....R&D;



    ...............Mission.......................Paris...........


    Ce genre de chose ...

    J'aimerai avoir un :
    Admin;4578;R&D;Mission;Paris

    Merci.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    il faut également utiliser l'option -w pour la largeur de la sortie, par ex : -w255
    Emmanuel T.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Merci on se rapproche de ce que je voudrai Malheureusement il y a toujours des dizaines d'espace entre chaque colonne dans le fichier texte, si bien qu'une ligne dans la BDD se retrouve en plusieurs lignes dans le ficher texte. Ce qui est assez gênant pour Excel qui interprête chaque saut de ligne comme une nouvelle observation ...

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Est-ce qu'il est possible de voir la requête ?

    merci
    Emmanuel T.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Alors :
    J'ai un batch qui lance cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    isql -U monNom -P monPass -S monServeur -D maBase -i script.sql -o Journal.log -b -w150 -s;
    Et le script.sql donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sp_helprotect unUser
    GO
    Mon objectif étant de balancer à helprotect non pas un mais une liste de User et qu'il me mette dans un fichier texte/CSV/etc. le résultat de la requête. Mais bon ça c'est un autre problème que je verrais plus tard

  14. #14
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Le mieux que j'arrive à faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    set nocount on
    set proc_return_status off
     
    exec sp_helprotect <user>
    go
    Et de passer un -w grand (1024 p.ex.).

    Les blancs dans la ligne ne sont pas vraiment gérables avec les outils simples sous Windows (à ma connaissance - en shell Unix on pourrait s'amuser avec cut, sed, etc pour cleaner tout cela...)

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Merci, je n'ai plus de "parasites" dans mon fichier texte mais une observation se trouve toujours sur plusieurs lignes différentes (le -w n'est plus pris en compte à partir d'une certaine valeur) car il existe beaucoup trop d'espaces entre chaque attribut.

  16. #16
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Quelle version d'isql (isql -v) ?

    Normallement on peut mettre des valeurs de -w très grandes (1000 et plus).

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Merci bien pour vos réponses, j'ai contourné le problème en important les données depuis Access via un script VBA

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

Discussions similaires

  1. Récupérer résultat d'un appel RPC
    Par ifr38 dans le forum GWT et Vaadin
    Réponses: 9
    Dernier message: 10/11/2014, 11h36
  2. [SWT/JFace] Récupérer les icônes du système
    Par Wookai dans le forum SWT/JFace
    Réponses: 7
    Dernier message: 07/09/2010, 12h31
  3. appel système opendir dans thread
    Par madimane dans le forum POSIX
    Réponses: 2
    Dernier message: 14/04/2006, 05h39
  4. [VBA-E] Récupérer résultat d'une requête
    Par ragnarök dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2006, 16h21
  5. Réponses: 5
    Dernier message: 30/06/2005, 10h28

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