Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Microsoft SQL Server - podwójne wpisy do bazy
malisz
post 2.10.2003, 12:02:36
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 smile.gif

Z góry dzięki za odpowiedź.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adwol
post 2.10.2003, 22:57:05
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 17:48