Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    MDB2 due istanze su sql server

    ciao a tutti speriamo che mi aiutiate perchè sono molto in crisi. Ho un server windows con ms sql server installato. Da un server Linux riesco correttamente a collegarmi grazie a MDB2 e manipolare i dati a mio piacimento.
    Il problema è che le istanze di MS sql sul server windows sono due ma io riesco solo a collegarmi a quella diciamo "senza nome" se così si può dire, cioè quella installata di base. L'altra istanza che è stata creata ad ok e chiameremo PIPPO non riesco a beccarla. I database, gli utenti e relative password, le tabelle ed i dati contenuti in esse sono identici alla prima istanza. Quindi, per chiarire, nel gestore dei servizi di SQL Server su windows mi appaio le due istanze in questo modo:

    Server: NOMESERVER
    Servizio: SQL Server
    In esecuzione: \\NOMESERVER - MSSQLServer

    Server: NOMESERVER\PIPPO
    Servizio: SQL Server
    In esecuzione: \\NOMESERVER\PIPPO - MSSQLServer

    Il codice che funziona benissimo con la prima istanza è il seguente :

    require_once "MDB2.php";

    $db_host="10.x.x.x";
    $db_user="nomeutente";
    $db_password="password";
    $db_name="nometabella";
    # CONNESSIONE DBASE #
    $dsn = "mssql://$db_user:$db_password@$db_host/$db_name";
    $options = array(
    'debug' => 2,
    'result_buffering' => false,
    );
    $mdb2 =& MDB2::factory($dsn, $options);
    if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
    } else {
    echo "Nessun errore di connessione
    ";
    }

    $sql = "SELECT * FROM NomeTabella";
    $res =& $mdb2->query($sql);
    echo "result---> $res
    ";
    while (($row = $res->fetchRow())) {
    echo "$row[0]
    ";
    }
    Se abbiamo detto che su windows la seconda istanza si chiama PIPPO cosa devo modificare nel mio script per potervi accedere??

    grazie in anticipo per le risposte

  2. #2
    scusate il piccolo UP ma non sono ancora riuscito a risolvere

  3. #3
    Non ho mai usato MDB2 cmq prova ad aggiungere il nome di istanza:
    Codice PHP:
    $db_host="10.x.x.x\\PIPPO"
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  4. #4
    Grazie per la risposta, è stata la prima cosa che ho provato, anche perchè in alcuni programmi tipo Aqua Data Studio si fa proprio così, infatti riporto dal manuale ...
    When registering an SQL Server you may specify in the Hostname text the name of the SQL Server and the Instance name in the format \\ServerName\InstanceName without a port to enable an Instance connection.
    Dunque, diciamo innanzitutto che son riuscito a risolvere , ho ricostruito la soluzione prendendo pezzi un po dalle guide di sql server e un po dalla documentazione di pear, ecco come ho fatto :
    - su windows avviate l'SQL Server Network Utility il cui link è nel solito menù sotto start -> programmi -> SQL Server
    - Cliccare sulla scheda General e poi scegliere nel menù a tendina l'istanza desiderata.
    - Scegliere il protocollo TCP/IP e poi cliccare su Proprietà.
    - Si noterà che l'istanza principale è sotto la porta 1433 che è quella usata di default, mentre invece la seconda istanza avrà una porta completamente diversa, nel mio caso era la 49719
    - modificare la riga di php dove si assegna il valore alla variabile $db_host come segue :

    Codice PHP:
    $db_host="tcp(10.x.x.x:49719)"
    a questo punto ci si collega alla seconda istanza anzichè alla prima

    ciao a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.