Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Microsoft SQL Server / MSDE _ Połączenie do bazy Subiekt`a [MSSQL]

Napisany przez: kiler129 20.06.2010, 03:01:51

Witajcie!
Przeszperałem google oraz forumowe szukanie ale niestety nic pomocnego się nie doszukałem. Staram się połączyć z bazą Microsft SQL (wersja express, 2005) ale nic z tego nie wychodzi. Jest to baza programu Subiekt GT (oraz innych zawartych w pakiecie).
Mniej więcej ogarniam strukturę bazy ponieważ Microsoft SQL Server Managment Studio Express łączy się do bazy bez problemów (podobnie jak sam subiekt).
Baza podłączana jest zdalnie.

Niestety, php nie chce ze mną współpracować. Próbowałem różnych kombinacji w mssql_connect jako serwer np.: IP\INSERTGT, HOST\INSERTGT, IP/INSERTGT, HOST/INSERTGT itp. - bezskutecznie. Cały czas dostaję błąd "Could not connect to database";


Czy ktoś spotkał się (na pewno ;]) z podobnym przypadkiem i mógłby pomoc?

Napisany przez: Trawka 21.06.2010, 21:54:54

Z tego co pamiętam to Subiekt ma swój plik konfiguracyjny XML w którym zapisane są wszystkei dane bazy danych. Nie pamiętam dokadnej nazwy ale znajdował się w katalogu instlacyjnym Subiekta.

Napisany przez: vokiel 23.06.2010, 21:38:58

Jeśli miałbyś serwer php postawiony na windowsie, to możesz w systemie ustawić sterowniki ODBC, utworzyć połączenie do tej bazy subiekta i korzystać z tak przygotowanego połączenia

Napisany przez: prachwal 30.06.2010, 10:13:12

zmień model autoryzacji ze zintegrowanej na SQL, wtedy działa login i hasło dla użytkownika

Napisany przez: UNK 1.07.2010, 07:22:52

Kod
$shost = "{ip}:{port}";
$suser = "{uzytkownik}";
$spass = "{haslo}";
$sdtb = "{baza danych}";


I teraz trochę wyjaśnienia.
IP i PORT chyba nie trzeba za dużo tłumaczyć tongue.gif
IP - adres IP serwera na którym stoi MSSQL, port niestety tutaj może być mały problem tongue.gif
Port na którym serwer stoi możesz otrzymać na kilka sposobów (należy pamiętać, że każda instalacja serwera MSSQL losuje sobie port podczas instalacji, więc nie jest on zawsze ten sam). W konfiguracji serwera sql (gdzieś jest programik i w nowej wersji jest to już ładnie opisane, starsze wersje MSSQL miały to któż to wie gdzie zapisane tongue.gif). Drugi to sprawdzić na stanowisku klienckim w rejestrze (nie pamiętam gdzie to było dokładnie tongue.gif). Trzeci, za pomocą netstat sprawdzić listę połączeń w windowsie z danym hostem.
PS. Jako adres IP wpisujesz sam IP bez "\INSERTGT" chyba, że masz więcej niż jedną instancje na serwerze, to może pojawić się problem, ale nie powinien tongue.gif

UZYTKOWNIK - nazwa użytkownika bazy danych, domyślnie sa
HASLO - hasło dla danego użytkownika, domyślnie puste
BAZA DANYCH - baz danych na ogół składa się z nazwy podmiotu tej bazy, jednak nie jest to ta sama nazwa. Należy sprawdzić w katalogu z plikami bazy bądź programie serwisowym InsertGT jaka jest nazwa bazy danego podmiotu. Mogę podpowiedzieć że spacje zamieniane są na _ a "." kasowane (względem nazwy podmiotu) tongue.gif

Jakbyś miał jakieś problemy, możesz pisać na PW. Z bazą InsertGT niestety mam w tej chwili dość dużą styczność, więc mogę co nieco podpowiedzieć.

Napisany przez: fesseme 11.06.2015, 16:58:54

Witam,
Odświeżę trochę temat gdyż mam podobny problem.

Problem który napotkałem jest związany iż za pomocą php nie mogę połączyć się z bazą mssql. Wiem że dane są poprawne ponieważ używając dokładnie tych samych połączyłem się za pomocą innego narzędzia do bazy i spokojnie mogę przeglądać zawartość.

Oto kawałek kodu który mam u siebie:

  1. $this->db['server'] = '127.0.0.1\INSERTGT';
  2. $this->db['login'] = 'sa';
  3. $this->db['pass'] = '';
  4. $this->db['database'] = 'DB';
  5.  
  6.  
  7. $c = mssql_connect ($this->db['server'], $this->db['login'], $this->db['pass']) or http://www.php.net/die ("Could not connect to database: ".mssql_get_last_message());
  8. mssql_query("USE $this->db['database']");


Odpowiedź jaką dostaję to:
"Could not connect to database: " i dalej pusto.


Napisany przez: mmmmmmm 11.06.2015, 22:34:17

Spróbuj db['server']='.\insertgt' lub '(localhost)\insertgt'
Poza tym zmień hasło na 'sa', bo sie prosisz o problemy...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)