/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Ikke fejl ved update af ikke eksisterende ~
Fra : Lars Grove Mortensen


Dato : 25-07-08 09:17

Hej alle på NG

Jeg har lavet en funktion, der kan opdatere en access-2k-db udfra
et excel-regneark... Det fungerer sådan set fint.

Men ved et tilfælde opdagede jeg, at der var en
uoverensstemmelse: I regnearket stod poster, som ikke fandtes i
databasen - men det meldte systemet intet om.

Ved importen har jeg lavet en if-then, hvor den tjekker for fejl
og skulle udskrive dem, i fald der opstod fejl. Men den har ikke
meldt nogen fejl der, hvor posten i db ikke eksisterede. Skal den
ikke det?


Jeg kører følgende løkke med fejl-tjek:



' Write out the record set
do while not rsExcl.eof




   strSQL = "Update kontrakter set [snip] Where KontraktNr = " &
rsExcl("Kontraktnr")

   ' SQL sætning eksekveres
   Conn.Execute(strSQL)




If err.number = 0 Then


   Response.Write "Import succes: " & strSQL & "<BR/>"
   taeller = taeller + 1

Else
   Response.Write "<BR/>Fejl: " & strSQL & "<BR/>"

   response.write "error " & err.number & " - " & err.description &
"<BR/><BR/>"

End if
   err.clear

' Move to the next record
rsExcl.movenext
loop

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Stig Johansen (25-07-2008)
Kommentar
Fra : Stig Johansen


Dato : 25-07-08 18:37

Lars Grove Mortensen wrote:

> Ved importen har jeg lavet en if-then, hvor den tjekker for fejl
> og skulle udskrive dem, i fald der opstod fejl. Men den har ikke
> meldt nogen fejl der, hvor posten i db ikke eksisterede. Skal den
> ikke det?

Nej.

> strSQL = "Update kontrakter set [snip] Where KontraktNr = " &
> rsExcl("Kontraktnr")

Hvis posten ikke eksisterer, er det ikke en fejl. Du skal have fat i
RecordsAffected, som returnerer 0 hvis der ikke er 'fundet noget'.


--
Med venlig hilsen
Stig Johansen

Michael Weber (25-07-2008)
Kommentar
Fra : Michael Weber


Dato : 25-07-08 21:22

Lars Grove Mortensen wrote:
> Hej alle på NG
>
> Jeg har lavet en funktion, der kan opdatere en access-2k-db udfra
> et excel-regneark... Det fungerer sådan set fint.
>
> Men ved et tilfælde opdagede jeg, at der var en
> uoverensstemmelse: I regnearket stod poster, som ikke fandtes i
> databasen - men det meldte systemet intet om.
>
> Ved importen har jeg lavet en if-then, hvor den tjekker for fejl
> og skulle udskrive dem, i fald der opstod fejl. Men den har ikke
> meldt nogen fejl der, hvor posten i db ikke eksisterede. Skal den
> ikke det?


Som Stig Johansen skriver er det ikke en fejl, hvis posten/ene) ikke findes.
Du kan prøve at tænke på det, på denne måde:

Når du laver en update,udvælger du først en mængde som skal opdateres.
Den mængde udvælges ud fra "Where" klausulen og at den mængde er tom,
hvilket vil sige Ø indenfor mængdelære (Hvis du kan huske det fra
folkeskolen;),
er ikke noget problem. En tom mængde er også en lovlig mængde.

Måske det hjælper at tænke det på den måde ?!
(Ihvertfald, prøv at tænk mængdelære,
når du arbejder med databaser.)


--
Med venlig hilsen
Michael Weber
Mod humor kæmper selv Guderne forgæves.



Søg
Reklame
Statistik
Spørgsmål : 177455
Tips : 31962
Nyheder : 719565
Indlæg : 6408144
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste