Avatar billede bobbedude Nybegynder
26. november 2009 - 08:06 Der er 10 kommentarer og
1 løsning

Check om update gik ok

Kan man checke om en SQL update blev udført korrekt.

Altså hvis man opdater en record ud fra det der kommer i en querystring eks id=99.

Hvis nu 99 ikke findes kan man se det uden at skulle lave endnu en SQL ?

Set EtEllerAndet = Connect.Execute(SQL)

If EtEllerAndet = OK then

Else

End if
Avatar billede fennec Nybegynder
26. november 2009 - 08:26 #1
execute tager faktisk en count parametre som returnere antallet af rækker der er påvirket:

conn.execute("update dinTabel set kol1=123 where id=99", count)
if count = 0 then
  'Ingen rækker opdateret
elseif count = 1 then
  'En række opdateret
else
  'Flere rækker opdateret
end if
Avatar billede michael_stim Ekspert
26. november 2009 - 08:28 #2
Tror ikke jeg fatter spørgsmålet. Du kan ikke checke noget uden at "kigge". Du kan checke at din sql forlader serveren korrekt og at det er korrekt data. Men der slutter alt check du kan gøre uden at "kigge" i den anden server.

Eller mener du: Hvis 99 findes i givent felt skal den lave en update, ellers en insert?
Avatar billede bobbedude Nybegynder
26. november 2009 - 16:43 #3
Fennec det lige det jeg leder efter dog kan jeg ikke få det til at virke med MYSql

SQL = "Update plugs set Hits = Hits+1, "
SQL = SQL & "LastLook= '"& Now() & "' "
SQL = SQL & " WHERE ID= "& Id
Connect.Execute(SQL)

har prøvet næsten alle kombinationer

SQL = SQL & " WHERE ID= "& Id ,count
SQL = SQL & " WHERE ID= "& Id &" ,count
SQL = SQL & " WHERE ID= "& Id &"" ,count
SQL = SQL & " WHERE ID= "& Id &" ,count"
Avatar billede bobbedude Nybegynder
26. november 2009 - 16:43 #4
michael_stim hvordan ser man om en Update fejler eller ikke bliver kørt
Avatar billede michael_stim Ekspert
26. november 2009 - 17:48 #5
Det er det jeg siger. Det kan man ikke uden at lave en forspørgsel mod databasen og sammenligne data med det man smider i tabellen. Databasen kan jo ikke vide hvad du har tænkt dig at smide ind.

Hvorfor spørger du? Har du oplevet at der er blevet smidt "forkert" data ind i tabellen?
Avatar billede bobbedude Nybegynder
29. november 2009 - 09:55 #6
michael_stim  det kan man da det jo det som fennec skriver.


Problemet er at jeg har en side med 10.000 vis af urler som bliver sendt ud via en redirectfil denne fil laver en update og så sender den videre til den url som kommer sammen med querystringen til update. Når man så sletter en side kan den url stadig eksister i Google og laver en fejl da siden den skal sendes til ikke eksister mere. Dette er et problem når siden modtager mere end 100.000 hits om dagen
Avatar billede fennec Nybegynder
30. november 2009 - 07:56 #7
Bobbeedude >>
Du kan ikke smide det på sql sætningen. Det er en parametre på execute.

SQL = "Update plugs set Hits = Hits+1, "
SQL = SQL & "LastLook= '"& Now() & "' "
SQL = SQL & " WHERE ID= "& Id
Connect.Execute(SQL, count)
Avatar billede bobbedude Nybegynder
30. november 2009 - 09:09 #8
Microsoft VBScript compilation error '800a0414'

Cannot use parentheses when calling a Sub

/redirect.asp, line 19

Connect.Execute(SQL, count)
---------------------------^

hej fennec jeg får denne fejl
Avatar billede fennec Nybegynder
30. november 2009 - 09:14 #9
Ahh. Min fejl :)

I ASP kalder man funktioner på 2 måder. En med parenteser og en uden:

call Connect.Execute(SQL, count) '<-- Med call først og parenteser
Connect.Execute SQL, count '<-- uden noget

Jeg fortrækker call metoden med parenteser. Men det er helt op til dig hvilken af dem du vil bruge.
Avatar billede bobbedude Nybegynder
02. december 2009 - 12:13 #10
fennec genialt !! Smid et svar
Avatar billede fennec Nybegynder
02. december 2009 - 12:48 #11
.o) <-- One Eyed Jack
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