Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med rekursiv funktion

Postades av 2006-12-27 11:29:25 - Marcus Granström, i forum asp - allmänt, Tråden har 6 Kommentarer och lästs av 762 personer

Använder mig av en rekursiv funktion för att skapa ett löpnummer. Finns löpnummret redan ska funktionen anropa sig själv tills funktionen har skapt ett löpnummer som inte finns.

Problem: Om det första löpnummret som skapas finnns i db, ropar jag på funktionen igen och skapar ett nytt löpnummer och kollar det mot db. Vi säger att detta löpnummer var ledigt, då returnerar jag detta löpnummer, men variabeln som tar emot detta värde är tom. Jag kollar löpnummret precis innan jag returnerar värdet och det är ok.

Allt funkar bra om det första löpnummret som skapas inte finns i db. Då får jag med mig det skapade löpnummret.

Varför får jag inte med mig värdet?


Svara

Sv: Problem med rekursiv funktion

Postades av 2006-12-27 11:46:49 - Pelle Johansson

Hej, tror vi behöver få se lite kod för att kunna avgöra vad som går fel för dig.


Svara

Sv: Problem med rekursiv funktion

Postades av 2006-12-27 12:01:03 - Per Persson

Varför rekursion för att skapa ett löpnummer? Duger inte vanlig iteration?

Finns det inte risk för oändlig rekursion/iteration eller är det säkert att ett nytt nummer verkligen kommer att hittas?


Svara

Sv:Problem med rekursiv funktion

Postades av 2006-12-27 12:01:50 - Marcus Granström

<code>
'Funktionsanrop
locCace = generateCasenumber(conn, "")


'Desa funktioner ligger i en egen fil. Filen inkluderas i den fil som anropa denna funktion
function generateCasenumber(conn, inCountCaseNumber)
dim locSQL, locRS, locDate, locCount, locCasenumber, locStatus, locCounter

if inCountCaseNumber <> "" then
locCount = inCountCaseNumber + 1
locCounter = locCount
else
locSQL = "select count(*) from tbl_xxx where left(create_date, 10) = #"&date&"#"
set locRS = conn.execute(locSQL)

locCount = locRS(0)

locRS.close
set locRS = nothing

locCount = locCount + 1
locCounter = locCount
end if

locDate = date


locCasenumber = locDate & locCount

locStatus = checkIfCasenumberExsits(conn, locCasenumber)
if locStatus then
generateCasenumber conn, locCounter
else
generateCasenumber = locCasenumber
end if

end function

function checkIfCasenumberExsits(conn, inCasenumber)
dim locSQL, locRScount, locCount

locSQL = "select count(*) from tbl_xxx where casenumber = '"&inCasenumber&"'"
set locRScount = conn.execute(locSQL)

locCount = locRScount(0)

locRScount.close
set locRScount = nothing

if locCount = 0 then
checkIfCasenumberExsits = false
else
checkIfCasenumberExsits = true
end if

end function
</code>


Svara

Sv: Problem med rekursiv funktion

Postades av 2006-12-27 13:32:45 - Per Persson

Var har du rekursionen?


Svara

Sv:Problem med rekursiv funktion

Postades av 2006-12-27 14:12:44 - Stefan Brännström

<b>Var har du rekursionen?</b>
Här har han anropet...
<code>
...
if locStatus then
generateCasenumber conn, locCounter
...
</code>
...dock anropas den som en subrutin, inte som en funktion...


Svara

Sv: Problem med rekursiv funktion

Postades av 2006-12-28 08:15:45 - Marcus Granström

La till variabeln locCasenumber till funktionsanropet.

locCasenumber = generateCasenumber(conn, locCounter)

Tackar


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 169
27 952
271 704
1 045
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies