|
| Mærkelige entries i loggen (Access2000) Fra : Steen Eiler Jørgense~ |
Dato : 22-01-03 13:24 |
|
Hver gang nogen tilgår mit site, logger jeg klokken, deres ip, hostname, og
hvilken side, de har set, i en Access2000-db.
Men nu er der sket noget mystisk: I tabellen har jeg en kolonne, der hedder
"id", og som er en autonumber. Dvs. hvert nyt entry får sit eget,
fortløbende id-nummer.
Men der var to entries med samme id-nummer! Faktisk var der to PAR entries
med respektivt samme id-nummer, der var altså to nr. 46310 og to nr. 46311.
Begge gange var der tale om to forskellige dokumenter, requestet af to
forskellige ip-adresser *men indenfor samme sekund* - de to entries havde
altså nøjagtig samme timestamp.
"Hm - dem fjerner jeg sgu lige" tænkte jeg:
DELETE FROM tabel WHERE id=46310
DELETE FROM tabel WHERE id=46311
Så forsvandt TO af entries'ne - men ikke alle fire! Så jeg har stadig to
entries, 46310 og 46311, liggende i databasen, som jeg *ikke kan fjerne*!
DELETE FROM tabel WHERE id=46310
DELETE FROM tabel WHERE tid=#08-01-2003 07:19:29#
DELETE FROM tabel WHERE tid BETWEEN #08-01-2003 07:19:28# AND #08-01-2003
07:19:30#
DELETE FROM tabel WHERE id<46312 AND id>46309
-INGEN af ovenstående SQL-sætninger kan fjerne de to entries! Jeg får
følgende fejlmeddelelse:
Hvis jeg kører "SELECT * FROM tabel WHERE id=46310" får jeg da også et tomt
recordset. Men hvis jeg
Hvad kan jeg gøre? (Udover at downloade databasen og slette dem manuelt!)
--
Steen Eiler Jørgensen
"No, I don't think I'll ever get over Macho Grande.
Those wounds run...pretty deep."
| |
Steen Eiler Jørgense~ (22-01-2003)
| Kommentar Fra : Steen Eiler Jørgense~ |
Dato : 22-01-03 13:26 |
|
Og så sendte den sgu lige mit indlæg, før jeg var færdig med det!
"Steen Eiler Jørgensen" <oz1sejREMOVETHIS@get2net.dk> skrev
> -INGEN af ovenstående SQL-sætninger kan fjerne de to entries! Jeg får
> følgende fejlmeddelelse:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] The search key was not found in
any record.
--
Steen Eiler Jørgensen
"No, I don't think I'll ever get over Macho Grande.
Those wounds run...pretty deep."
| |
Jens Gyldenkærne Cla~ (22-01-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 22-01-03 14:39 |
|
Steen Eiler Jørgensen skrev:
> Hvad kan jeg gøre? (Udover at downloade databasen og slette
> dem manuelt!)
Det lyder som om databasen er korrupt. Jeg ville vælge komprimer og
reparer - og det kræver, jf. en anden aktuel tråd, normalt også at
du downloader basen.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Klaus Ambrass (22-01-2003)
| Kommentar Fra : Klaus Ambrass |
Dato : 22-01-03 14:55 |
|
"Steen Eiler Jørgensen" <oz1sejREMOVETHIS@get2net.dk> wrote in
news:b0m2fh$2o8$1@sunsite.dk:
> Hver gang nogen tilgår mit site, logger jeg klokken, deres ip,
> hostname, og hvilken side, de har set, i en Access2000-db.
>
> Men nu er der sket noget mystisk: I tabellen har jeg en kolonne, der
> hedder "id", og som er en autonumber. Dvs. hvert nyt entry får sit
> eget, fortløbende id-nummer.
>
> Men der var to entries med samme id-nummer! Faktisk var der to PAR
> entries med respektivt samme id-nummer, der var altså to nr. 46310 og
> to nr. 46311. Begge gange var der tale om to forskellige dokumenter,
> requestet af to forskellige ip-adresser *men indenfor samme sekund* -
> de to entries havde altså nøjagtig samme timestamp.
>
> "Hm - dem fjerner jeg sgu lige" tænkte jeg:
>
> DELETE FROM tabel WHERE id=46310
> DELETE FROM tabel WHERE id=46311
>
> Så forsvandt TO af entries'ne - men ikke alle fire! Så jeg har stadig
> to entries, 46310 og 46311, liggende i databasen, som jeg *ikke kan
> fjerne*!
>
> DELETE FROM tabel WHERE id=46310
> DELETE FROM tabel WHERE tid=#08-01-2003 07:19:29#
> DELETE FROM tabel WHERE tid BETWEEN #08-01-2003 07:19:28# AND
> #08-01-2003 07:19:30#
> DELETE FROM tabel WHERE id<46312 AND id>46309
>
> -INGEN af ovenstående SQL-sætninger kan fjerne de to entries! Jeg får
> følgende fejlmeddelelse:
>
>
> Hvis jeg kører "SELECT * FROM tabel WHERE id=46310" får jeg da også et
> tomt recordset. Men hvis jeg
>
> Hvad kan jeg gøre? (Udover at downloade databasen og slette dem
> manuelt!)
>
> --
> Steen Eiler Jørgensen
> "No, I don't think I'll ever get over Macho Grande.
> Those wounds run...pretty deep."
>
>
>
Hj Steen,
hvis du har en ID-kolonne, og den , som jeg læser dit indlæg, er sat til
autonummer, så er det UMULIGT at du har to ens ID'er. Men Access har jo
andre gange bevist at den kan noget, ingen andre baser kan. Jeg vil tro at
det omtalte ID-par er noget garbage du har fået ind, netop fordi
timestampen er nøjagtigt ens. Det ene par er så blevet låst på en eller
anden måde, så du ikke kan slette det.
Fejlmeddelelsen tyder da også på at posterne med det respektive ID er ude
af din base. Du kunne prøve at hente basen ned til dig selv og så køre en
"komprimer/reparer database" på den. Gad vide hvilken besked du vil få og
om ikke dine poster med de "låste" ID'er forsvinder.
I din asp-side kunne du prøve at indsætte:
application.lock
(opdater_hits)
(log_brugerdata)
application.unlock
får (måske) at undgå det sker igen.
--
Klaus Ambrass
IT - Storstrøms Amt
kam@it.stam.dk
| |
|
|