Avatar billede ulrikp Nybegynder
03. september 2002 - 14:01 Der er 17 kommentarer og
1 løsning

Gik SQL-statementet godt?

Hvordan finder jeg ud af om en sletning af en record i en Access database via SQL gik godt?
Eksempel: Hvordan finder jeg ud af, at der ikke blev slettet nogen record, hvis jeg f.eks. prøver at slette en record med id=1 og der ikke findes nogen record med id=1?

strSQL = "DELETE FROM TABEL WHERE Id=1"
objCon.execute(strSQL)
Avatar billede milo Nybegynder
03. september 2002 - 14:08 #1
sæt or die (mysql_error()); efter...
Avatar billede benson Nybegynder
03. september 2002 - 14:15 #2
sæt or die (mysql_error()); efter...

Hvad mener du lige med det ??

Ja ! jeg lytter jo egentlig bare ;-)
Avatar billede a1a1 Novice
03. september 2002 - 14:18 #3
det er til mySQL og php....

og vil ikke virke med access og php....

en nem måde at gøre det på vil være at checke om id'et eksisterer før du sletter det...

;)
Avatar billede whatever Nybegynder
03. september 2002 - 14:18 #4
milo > "or die (mysql_error());" virker ikke ligefrem med Access.
Avatar billede a1a1 Novice
03. september 2002 - 14:18 #5
og vil ikke virke med access og php....

skal jo være

og vil ikke virke med access og asp....

he he
Avatar billede ulrikp Nybegynder
03. september 2002 - 14:30 #6
Jeg fik lige en idé, men øv det virker ikke:

strSQL = "DELETE FROM TABEL WHERE Id=1"
objCon.execute(strSQL)

if objCon.errors.count>0 then
for each fejl in objCon.errors
  response.write "<hr>"
  response.write "Nummer-> " & fejl.number & "<br>"
  response.write "Beskrivelse-> " & fejl.description & "<br>"
  response.write "Kilde-> " & fejl.source & "<br>"
  response.write "SQLState-> " & fejl.SQLState & "<br>"
  response.write "DB specifik kode-> " & fejl.NativeError & "<br>"
  response.write "<hr>"
next
else
response.write("Posten er blevet slettet.")
end if

Selvom der ikke findes nogen post med id=1 får jeg alligevel at vide at posten er blevet slettet?
Avatar billede tuctoh Nybegynder
03. september 2002 - 14:32 #7
start med at selecte hvor id=1, se om der findes nogen poster.
Hvis der gør, slet dem og skriv at der blev slettet. hvis der i starten ikke var nogle poster, lad være med at prøve at slette, og nøj's med at skrive at der ikke var noget.
Avatar billede benson Nybegynder
03. september 2002 - 14:36 #8
Jeg har det ligesom ulrikp, bedst med at køre det hele med rene SQL scripts. Men kan måske se fordelen ved følgende (som ligner tuctoh's forslag):
- Hent alle forekomster ind i et recordsæt : objRS.Open sqlstr
- Hvis recordsæt ikke er tomt, så slet alle : objRS.Count>0
- Ellers lav noget andet ?
Benson
Avatar billede a1a1 Novice
03. september 2002 - 14:37 #9
det er ikke en fejl hvis id'et ikke findes...

tuctoh er det ikke det samme som mit svar? ;o)
Avatar billede tuctoh Nybegynder
03. september 2002 - 14:37 #10
jo, det har du egentligt ret i a1... læste det ikke sådan første gang
Avatar billede benson Nybegynder
03. september 2002 - 14:42 #11
Kan det her bruges ??

ON ERROR RESUME NEXT
  ' Kald til database
  IF err.number <> 0 THEN call catch()
EN ERROR GOTO 0


IF err.number <> 0 THEN call catch()
kaldes funktionen catch i de tilfælde hvor f.eks. kaldet til databasen går galt.
Avatar billede ulrikp Nybegynder
03. september 2002 - 14:45 #12
Jeg tror sgu bare jeg tjekker på om id'en findes inden jeg sletter, som tuctoh foreslog
Avatar billede a1a1 Novice
03. september 2002 - 14:46 #13
hrmphfff....

;(
Avatar billede benson Nybegynder
03. september 2002 - 14:48 #14
Eller som a1 foreslog ...... ;-)
Avatar billede ulrikp Nybegynder
03. september 2002 - 14:54 #15
Kunne jeg have accepteret svar fra 2 forskellige? (jeg er newbie herinde)
Avatar billede a1a1 Novice
03. september 2002 - 14:54 #16
ja ved at trykke på advanceret :)
Avatar billede ulrikp Nybegynder
03. september 2002 - 14:59 #17
Det er for sent nu ikke? Jeg kan nemlig ikke finde "avanceret" nu.
Avatar billede a1a1 Novice
03. september 2002 - 15:16 #18
jo :) det går nok
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