![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 10.04.2002 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Pierwszy raz spotykam się z tym problemem, i nie potrafię go racjonalnie wytłumaczyć. Żeby było śmieszniej nie dzieje się to za każdym razem, ale co 5 - 10 raz. Teraz o co chodzi. taki krótki kod: ... $sql = "INSERT INTO temptable (nazwa) values ('abc')"; $result = mssql_query($sql, $DB); ... czasem wstawia od razu 2 takie same rekordy, mimo ze wywolanie nastepuje tylko raz. Siedziałem nad tym całą noc i testowałem wszelakie rozwiązania, ze sprawdzaniem czy istnieje, z indeksami na nazwe... wszystko co mi przyszło na myśl. Jeżeli mam założony indeks na nazwe to przy wstawieniu rekordu (oczywiście nie zawsze) baza zgłasza błąd : rekord o podanym indeksie już istnieje, ale dlatego, że rekord został wstawiony, a błąd wyświetlany jest przy drugiej samoczynnej próbie wstawienia rekordu. Dlaczego tak się dzieje. Mam też SQL Server na drugim kompie i jest dokładnie tak samo. Czy ktokolwiek domyśla się w czym problem? To dla mnie bardzo ważne. Mam nadzieje ze z tego co napisalem chociaz troche wiadaomo o co chodzi ![]() Z góry dzięki za odpowiedź. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat mam debuga, kod jest wykonywany tylko raz, na BANK!
MSSQL ma trigery, ale nie mam zadnych zdefiniowanych. Najdziwniejsze w tym wszystkim jest to, że problem nie pojawia się za każdym razem. Ok, czy jesteś w stanie przeprowadzić dość powtarzalne eksperymenty? Znaczy, czy zdarza się to na tyle często, że po kilku/kilkunastu próbach jesteś w stanie stwierdzić czy dalej jest błąd czy sie poprawiło? Jeśli tak, to spróbuj wyizolować problem. Okastrowuj ten kod ze zbędnych rzeczy tak długo aż ograniczysz się do kilku zapytań lub problem nagle zniknie. Dążę do tego, aby pozostało jak najmniej kodu i żeby dało się wtedy testować każde zapytanie po kolei. Problem może być kontekstowy, będzie istniał tylko jeśli zostaną wydane konkretne zapytania i to w konkretnej kolejności. Spróbuj więc jak już okastrujesz ten kod wydać te zapytania bezpośrednio z konsoli administracyjnej MSSQL lub innego programu tego typu do bezpośredniej interakcji z bazą. To pozwoli określić gdzie jest błąd, bo może sterownik PHPowy do MSSQLa jest wadliwy. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 17:48 |