![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 15.02.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Dla przypomnienia oryginalny list
-------------------------------------- Witam serdecznie wszystkich czytających i nie marudząc o pogodzie przechodzę do tematu. Mój zestaw jako serwer to Win2003SBS i SQL2000 (w komplecie z SBSem) oraz dodatkowo php 5.0.3 Problem polega na tym, że firma, która nam zainstalowała program sprzedażowo-fakturujący nazwała bazy w MSSQL w sposób następujący: NAZWAPRODUCENTA_PRACA_NAZWANASZEJFIRMY_ULICA_MIASTO oraz NAZWAPRODUCENTA_DEMO_NAZWANASZEJFIRMY_ULICA_MIASTO Dla nich to wygodne, bo zdalnie mogą administrować wieloma bazami i się w tym nie pogubią, ale dla mnie nazwa bazy, która ma 38 znaków to problem. Mój skrypcik odpalany na XITAMI pod WinXP wygląda następująco:
i jak się łączę do standardowej bazy Northwind to działa, ale jak próbuję podać tą długą nazwę to wywala komunikat: Cytat Warning: mssql_select_db() [function.mssql-select-db]: message: Could not locate entry in sysdatabases for database 'PRODUCENT_MARKA_DEMO_FIRMA_ULI'. No entry found with that name. Make sure that the name is entered correctly. (severity 16) in c:\xitami\webpages\php2\sql2.php on line 3 orazCytat Warning: mssql_select_db() [function.mssql-select-db]: Unable to select database: 'PRODUCENT_MARKA_DEMO_FIRMA_ULI' in c:\xitami\webpages\php2\sql2.php on line 3 czyli php przekazuje do funckji mssql_select tylko 30 początkowych znaków z nazwy bazy. Nie mieści mu się końcówka ulicy i miasto. W większości przypadków to wystarczy, ale u nas akurat nie. Pytanie jest zatem następujące - czy zna ktoś z Was jaki sposób aby zrobić coś na zasadzie krótszego aliasu do bazy w MSSQLu? Niestety nie mogę zmienić oryginalnej nazwy na inną (umowy serwisowe i bezpłatne upgrade'y) ale też nie chcę się pozbawiać dostępu do tej bazy z poziomy php. A może temat potraktować z drugiej strony - czy można jakoś inaczej potraktować tą bazę w php aby ją jednak otworzyć do dalszej "obróbki" ? Dzięki za pomoc. Mroziu Rozwiązanie problemu -------------------------------------- Ponieważ nie mogę odpowiedzieć na swój list, napiszę rozwiązanie tego problemu pod spodem. Być może ktoś spotka się z podobną sytuacją i nie będzie musiał wyważać otwartych drzwi. W temacie długości nazwy poczyniłem dziś testy. Oto, do czego doszedłem. (*) Zamiast na Xitami pod WinXP wykorzystałem fabrycznego IIS z Win2003SBS - nie pomogło (*) założyłem "od zera" bazy o następujących nazwach: BAZA_30_9012345678901234567890 BAZA_31_90123456789012345678901 BAZA_32_901234567890123456789012 i testowałem i niestety, tak jak się mogłem domyslać baza30 dała się otworzyć natomiast baza31 i baza32 już nie. (*) Za namową kolegów potraktowałem bazę przez odbc, czyli: 1) w Źródłach danych założyłem "alias" do zbyt długiej nazwy. Odbc też ma ograniczenie nazwy do 32 znaków ale można zrobić krótką nazwę i wskazać bazę, którą ma obsłużyć. A nazwa tej bazy może być już dłuższa, niż 30 znaków. 2) zmodyfikowałem skrypt i zamiast funkcji mssql_* używam odbc_* Tak więc mam dwa w jednym ale działa. Pozdrawiam Mroziu Ten post edytował mroziu 20.02.2005, 01:25:54 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 13:24 |