Avatar billede Slettet bruger
13. juni 2007 - 14:44 Der er 5 kommentarer og
1 løsning

Tjek på data i SQL

Hej

Jeg har en tabel med med ID, T, B, md5, Counter. Jeg skal så kunne teste på md5. Hvis md5 nummeret er der i forvejen skal counter tælle en op, (det er heller ikke noget problem), men hvis md5 nummeret ikke er der, skal den oprette den i tabllen. Så mit spørgsmål er hvordan jeg tester på om md5 nummeret allerede er i databasen ?? min kode indtil videre:


strSQL = "Select * FROM fejlmeldning WHERE md5='"& md5 &"'"
set rs = objConn.execute(strSQL)

Response.Write "md5 nummeret er: " & md5
if rs("ID") = "" Then
strSQL1 = "INSERT INTO fejlmeldning VALUES ('Null', '1', '2', '"& md5 &"', '0')"
objConn.execute(strSQL1)
Else
strSQL1 = "UPDATE fejlmeldning SET counter = '25' WHERE md5 = '"& md5 &"'"
objConn.execute(strSQL1)
end if

Så man kan se har jeg prøvet med at teste på om ID var tom, men det er desværre ikke muligt. fejlkode: error '80020009'

Nogen der kan hjælpe ?
Avatar billede w13 Novice
13. juni 2007 - 19:35 #1
Hvis du beder om poster, hvor md5=noget, og der ikke findes noget, så kan du ikke hente informationer om rs("id"). Dette kan kun lade sig gøre, hvis der blev fundet poster! Så når du tjekker, om rs("ID") = "" opstår der fejl, da du ikke har adgang til rs("id"), når der intet blev fundet.

Brug derfor i stedet:
if rs.BOF Or rs.EOF Then

Så burde det virke! :)


BOF = Beginning of File
EOF = End og File
Avatar billede w13 Novice
13. juni 2007 - 19:36 #2
Når der bare står rs.BOF svarer det nemlig til rs.BOF = true.
Avatar billede Slettet bruger
14. juni 2007 - 12:07 #3
Det virkede, smid et svar. Ville man kunne nøjes med at teste på kun BOF eller EOF, eller hvad er det helt præcist den gør ?
Avatar billede w13 Novice
14. juni 2007 - 12:20 #4
Hvis intet hentes fra databasen vil både BOF og EOF være true. Du kan derfor godt nøjes med EOF, da den altid vil være true, hvis der ikke er flere poster at løbe igennem.

Forskellen på de 2 er:

Lad os sige, du henter 3 poster fra databasen.

Post 1: BOF er true, da dette er begyndelsen af posterne.
        EOF er false, da dette ikke er slutningen af posterne.

Post 2: BOF er false, da dette ikke længere er begyndelsen.
        EOF er false, da dette ikke er slutningen af posterne.

Post 3: BOF er false, da dette ikke er begyndelsen af posterne.
        EOF er true, da dette er slutningen af posterne.

Et andet eksempel - ingen poster blev fundet:

Post 1: BOF og EOF er begge true, da der ikke er en post 1, og vi er derved både i begyndelsen og slutningen.
Avatar billede Slettet bruger
14. juni 2007 - 12:28 #5
sådan, tak for god hjælp :)
Avatar billede w13 Novice
14. juni 2007 - 12:29 #6
Og tak for point! ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester