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

PHP & Base de données Discussion :

Interfaçage SSAS et PHP


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Par défaut Interfaçage SSAS et PHP
    Bonjour,

    Connaissez vous une librairie PHP capable d'utiliser/manipuler des données issus de SSAS 2008 ?

    Faut-il obligatoirement utiliser un langage microsoft, exemple C#/ASP pour réaliser une interface de restitution web des données issus d'un cube SSAS 2008 ?

    Je sais qu'il existe des outils de restitution tel que SSRS ou Cognos par exemple, mais on me demande de faire sans.

    Merci d'avance pour votre réponse.

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    Il semblerait possible de passer par mssql_query et le langage MDX... voir le commentaire de getzeroedin sur cette page de la doc PHP : http://php.net/manual/fr/function.mssql-connect.php

  3. #3
    Membre éclairé Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Par défaut
    J'ai effectué quelques tests et effectivement c'est possible en suivant ce qui est écrit par "getzeroedin" sur la page de la doc PHP : http://php.net/manual/fr/function.mssql-connect.php
    Sur un serveur MS SQL 2005, j'ai crée un procédure stockée contenant le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    USE [MA_BASE_TEMP]
    GO
    /****** Objet*:  StoredProcedure [dbo].[testMDX]    Date de génération du script*: 07/19/2011 08:55:16 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
     
    -- procédure stockée permettant de lire les données des cubes
    /* 
    -- Amélioration à faire : ajouter des paramètres à cette PS, avec : 
    - Nom du serveur OLAP : @serveur
    - Nom base OLAP : @base_olap
    - Provider : @provider = MSOLAP.3 (SSAS 2000), MSOLAP.4 pour du 2005 et 2008
    - RequeteMDX : @rq_mdx ici simple requête permettant de recup un montant pour l'année 2005
    */
    ALTER Procedure [dbo].[testMDX] as
    BEGIN
    SET ANSI_WARNINGS ON:  -- Must be enabled
    SET ANSI_NULLS ON; -- Must be enabled
     
    Declare
    @SQL varchar(1200),  -- Variable to hold SQL query
    @MDX varchar (1000) -- Variable to hold MDX query
     
    -- Establish a link to Analysis Server
    exec sp_addlinkedserver
    @server='linked_olap', -- Alias used to reference the link
    @srvproduct='', -- Not used
    @provider='MSOLAP.4', -- OLAP driver MSOLAP.4 pour 2008
    @datasrc='MONSERVEUROLAP2008', -- Database server name MONSERVEUROLAP2008
    @catalog='Base_Olap' -- Database name
     
    -- Analysis Server requires a TRUSTED connection
    exec sp_addlinkedsrvlogin
    @rmtsrvname = 'linked_olap', -- Alias used to reference the link
    @useself = 'false', -- Use own credentials
    @locallogin = NULL, -- Apply to all local logins
    @rmtuser = '', -- Remote user name domain\username
    @rmtpassword = '' -- Remote user password
     
    -- Create a temporary table that will be used to hold the MDX output
    create table #temp_table (periode varchar(2000) null, montant varchar(2000) null)
     
    -- Setup a string to hold the MDX so that the precompiler does not try to validate the syntax
    SET @MDX = ' SELECT
        { [Measures].[Montant] } ON COLUMNS,
        { [Periode].[Année] } ON ROWS
    FROM [Mon Cube] '
     
    -- Setup a string to insert the MDX results into the temporary table
    SET @SQL = 'INSERT INTO #temp_table SELECT * FROM OpenQuery(linked_olap,'''+@MDX+''')'
     
    -- Execute the SQL and remote MDX query
    EXEC (@SQL)
     
    -- Select the results from the temporary table to return to the calling program
    Select * from #temp_table
     
    -- Drop the temporary table
    drop table #temp_table
     
    -- Release the TRUSTED connection
    exec sp_droplinkedsrvlogin 'linked_olap', NULL
     
    -- Release the link to the Analysis Server
    exec sp_dropserver 'linked_olap'
     
    END
    -- STORED PROCEDURE END
    et voici mon code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    <html>
    <head>
    <title>Accès SSAS 2008 :: PHP</title>
    </head>
    <body>
    <?php
    if (function_exists('mssql_fetch_row')) {
    echo "MSSQL functions are available.<br />\n";
    } else {
    echo "MSSQL functions are not available.<br />\n";
    }
    ?>
    <br />
    Test d'accès aux cubes SSAS 2008 en PHP
    <br />
    <?php
     
    // connexion au serveur MS SQL 2005 sur lequel nous avons notre PS (testMDX)
    $connect = mssql_connect ("MONSERVEURMSSQL2005", "login", "password");
     
    //$conn = new COM("ADODB.Connection") or die("Impossible de démarrer ADO");
    //$conn = new COM("ADOMD.Connection") or die("Impossible de démarrer ADOMD");
    //$conn->Open("Provider=MSOLAP;Data Source=MONSERVEUROLAP2008;Initial Catalog=Base_Olap;User ID=;Password=");
     
     
    //$create_ps = mssql_query($ps,$connect);
     
    /*$resultset = mssql_query("exec MA_BASE_TEMP..testMDX",$connect);
    
    while($line = mssql_fetch_row($resultset))
    {
    	echo $line[0]." : ".$line[1]."<br />"; 
    }*/
     
    $query = mssql_query("exec MG_T_TEMP..testMDX",$connect);
     
    // Vérifie s'il y a des lignes
    if (!mssql_num_rows($query)) {
        echo 'Pas de ligne trouvée';
    } else {
        // Ceci est équivalent au code ci-dessous :
        //
        // while($row = mssql_fetch_row($query))
     
        while ($row = mssql_fetch_array($query, MSSQL_NUM)) {
            echo $row[0].' : '.$row[1].'<br />';
        }
    }
     
    // Libération des ressources
    mssql_free_result($query);
    //Fermeture de la connexion
    mssql_close($connect);
     
    ?>
    <br />
    </body>
    </html>

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

Discussions similaires

  1. [2008] Interfaçage SSAS et PHP
    Par crashyear dans le forum SSAS
    Réponses: 0
    Dernier message: 13/07/2011, 11h19
  2. Connexion PHP à SSAS
    Par krosk dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 18/03/2010, 10h10
  3. Interfaçage Flash / PHP : upload de fichiers
    Par Sarrus dans le forum Flash
    Réponses: 21
    Dernier message: 03/10/2008, 17h38
  4. idées d'interfaçage de birt et php
    Par abdou1664 dans le forum BIRT
    Réponses: 2
    Dernier message: 24/05/2007, 09h54
  5. [PHP-JS] Interfaçage PHP / Java?
    Par bractar dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2007, 00h11

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