Når man uploader en database, og forsøger at åbne en .asp side, får man jo fejlmeddelse. Kan man ikke få den til at skrive f.eks "Siden opdateres" eller noget?
<% ' Noget kode On Error Resume Next ' Åben database If Err Then Response.Write "Siden opdateres" Response.End End If On Error GoTo 0 ' Noget mere kode %>
Hvor pænt det er, kan jo diskuteres, men det burde fungere.
if Err.Number <> 0 then response.write "Der var en fejl....<br><br>" response.write "<b>Nummer</b>: " & Err.Number & "<br><b>Beskrivelse</b>: " & Err.Description & "<br><b>Fra</b>: " & Err.Source else response.write "Siden er nu opdateret.. gå til <a href='side2.asp'>en anden side</a>" end if
1) Jeg kan ikke se meningen, med at udskrive noget, og derefter bruge Response.End? 2) Forstår ikke helt "Når man uploader en database, og forsøger at åbne en .asp side".. ?
Jeg forestiller mig, at han vil tjekke forbindelsen til databasen på hver side, hvor han skal bruge den. Hvis alt er i orden, skal koden nedenunder afvikles. Ellers skal afviklingen stoppes, og en fejlmeddelelse gives. Derfor brugte jeg Response.End, men det kan selvfølgelig laves på flere forskellige måder.
Jeg vil generelt anbefale at tilføje noget kode i en db.asp Jeg har selv en functions.asp som jeg includer på alle sider. Den indeholder diverse funktioner samt database forbindelse I denne fil giver det så god mening at bruge response.end ---- <% opdaterer = False If opdaterer Then response.write "Siden er under opdatering" response.end end if
// andre funktioner og database forbindelser mm %> --- Hvis denne fil includeres på alle sider så skal du blot sætte opdaterer = True når du opdaterer en database eller generelt laver opdateringer Herved vil alt output fra alle filer stoppes og kun "siden er under opdatering" vil fremkomme :o)
Er det ikke det, hele spørgsmålet drejer sig om? Hvis der ikke kan etableres forbindelse, skal der gives en fejlmeddelelse - uanset hvilken side brugeren anmoder om. Måske har Lars været smart nok til at lægge forbindelsesstrengen i en include-fil, men det gør jo så bare det hele nemmere.
1) Jeg kan godt se, hvad du mener.. og det er logisk nok. Ved at fange fejlen (med on error resume next...), kan man undgå, at hele siden går i stå.
2) Hvis det er spørgsmålet, forstår jeg ikke helt: "Siden opdateres" Med mindre at han mener, at han er ved at opdatere siden = uploader en ny database-fil.. jeg tror faktisk, at det er det han mener..
Er ikke helt sikker. Jeg opfatter det som om, at han af og til vil downloade basen, foretage nogle ændringer i den og slutteligt uploade den igen. Men det forhindrer jo ikke folk i at skrive til den, mens den redigeres lokalt.
Der drejer sig ganse enkelt om noget resultatformidling. Her kan min access-database måske komme til at fylde 10 MB, og med 768 Kbit i Upstream, tager det jo ikke bare lige et par sekunder. Nermere nogle minutter. Mens databasen er utilgængelig skal der på alle forespørgsler på alle sider komme en meddelse om at "Der opdateres - Vend tilbage om få minutter"
lars_hoeberg >> netop :o) så har du prøvet mit forslag 30/06-2005 10:13:22 ? Ideen er at du inden du uploader databasen så lige sætter opdaterer = True, og når du har uploadet den sætter opdaterer = False Så vil beskeden stå der så længe du har sat opdaterer til True nemlig. Og det på alle sider som includerer denne side
En bedre metode ville være, at uploade databasen under et midlertidigt navn, og derefter omdøbe filen.
Eksempel ("ibrug.mdb" er filen der skal bruges, når siden kører som den skal)
- ibrug.mdb (loades på siden som sædvaneligt, når siderne loades) - upload "tmp.mdb" - når upload af "tmp.mdb" er fuldført, vis besked ("databasen opdateres...") f.eks. via en session - omdøb "ibrug.mdb" til "idle.mdb" (eller noget andet) - omdøb "tmp.mdb" til "ibrug.mdb" - fjern besked ("databasen opdateres...")
Så er det gjort, og "nedetiden" (tiden det tager for at "aktivere" den nye fil) er minimal, dvs under 1 sekund..
Det kræver at du har adgang til FilesSystemObject, og skriverettigheder, for at kunne manipulere filnavne.
2)
Hvordan kan det være, at du skal uploade en hel ny database-fil? Ændrer du ved strukturen af databasen? Hvis det bare er tilføjelser af data, kan det gøres online.. se lektionerne 17-22 på http://www.html.dk/tutorials/asp/
netro >> ideen er at det måske ikke altid er databasen man opdaterer men måske også andre ting. Man kan på den måde sætte siden på "stand by" uden skulle ind på hver eneste side seperat da disse alle i forvejen includerer den ene fil :o)
men altså det står jo en frit for hvordan man gør Jeg har på min side intet imod at der står den opdaterer i måske 30min mens jeg arbejder på den At jeg så kun skal rette eet felt i een fil , ja det synes jeg er nemmest :o)
nej det er vel en smags sag :o) Det eneste er vel at der kan være andre database fejl , eller ske andre fejl Og hvis man så har en resume next som altid siger at siden opdateres så finder man måske ikke andre fejl Men det er bare en tanke, så kan man vel skilde fejlenene fra hinanden
thesurfer >> sorry, det er så ikke aktuelt her, men sidder selv med noget administrations system, og ville ikke rende ind i at miste data som folk tror lige er sat ind, men som så ikke er sat ind fordi databasen er blevet erstattet af en som er fra to min før :o)
Så må man lige flagge (update=true) i små 2-5 mins, og så omdøbe filen.. :-) Hvis brugerene ikke har klikket på submit-knappen, inden for 2-5 mins.. tja.. så må man håbe, at de bruger browseren Opera... :-)
netro >> jeg tænker bare hvad der kan ske af ting og sager som er uforudsigelige :o) , kan godt lide det hele virker som man forudsiger. Men der er nok ikke meget der kan ske så kan jeg godt se. Måske hvis udbyderen ændrer ens sti og den er angivet absolut, så vil der stå at der opdateres fordi den ikke kan finde databasen. Og det kan måske så stå længe inden nogen opdager at det skyldes noget andet. Såmend bare sådan mine skøre tanker er :o)
Hvis vi skal gå med livrem og seler, kan vi tjekke, om stien findes, inden vi prøver at åbne basen. Men et tilsvarende scenario kunne jo opstå, hvis vi glemmer at sætte variablen tilbage til falsk.
Hvis man selv glemmer det er det selv forskyldt. Der er da stor forskel på om det er selv forskyldt eller uforudsigeligt. Eller om det for den sags skyld er sandsyndligt at der sker noget uforudsigeligt. Hvis jeg skulle lave sådan en error resume next, så skulle det være fordi jeg kendte en error.code Jeg kender ikke asp´s metoder til den slags Men i givet fald kunne man forestille sig lave en fejl besked til hver af de forskellige hendelser :o) - Men ja ja, det er jo an på hvem man er. Jeg er ligeglad hvad spørger vælger. Det må være op til ham selv hvad han synes er nemmest i hans verden og situation Jeg kan kun argumentere for hvad jeg synes er lettest og som fungerer bedst for mig :o)
thesurfer >> ok det er måske en meget god ting.. kan jeg ikke lige lure hehe. Men der er stor forskel da. Synes at hvis jeg submitter en form til samme side som den kommer fra. Så kan jeg i IE ikke få vist original siden uden at gå til en helt anden side først, ved f5 eller tastning af samme side vil den altid sende formen igen nemlig.. men såen er der vist så meget
thesurfer >> by the way, er du Opera fan? Ved du om man kan sætte baggrunden i en iframe transperant i opera?... bare lidt off topic, kan ikke huske om jeg har haft dig med inde i den debat engang :o)
Og ellers er jeg vist ude her... så må lars_hoeberg vist være den næste som melder sig med om han har prøvet nogle ting og sager :o)
(Om transperant iframe) It's non-standard behaviour and not widely used so I doubt there'll be much motivation on Opera's behalf to spend resources implementing it.
Det er ikke en W3C standard, og er ikke understøttet af Opera.. det er bare noget ekstra, som andre browserere understøtter..
thesurfer >> oki, har selv læst noget på nettet om at Opera mente at en iframe var ligesom et vindue til en anden side og derfor kun kunne have den sides baggrund som baggrund, da den ikke kender hovedsiden...eller noget Jeg har en baggrund som fader, og hvis jeg skal lægge den samme ind i iframen så kræver det presision. Dvs så mister jeg funktionaliteten med at det ser ordentlig ud i flere skærmstørrelser. Men der er jo en anden anden, måtte bare lige spørge :o)
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.