Avatar billede lars_hoeberg Praktikant
29. juni 2005 - 23:13 Der er 36 kommentarer

Vis side, når database uploades

Hejsa.

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?

Lars
Avatar billede netro Nybegynder
30. juni 2005 - 01:11 #1
Du kan jo prøve følgende.

<%
' 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.
Avatar billede thesurfer Nybegynder
30. juni 2005 - 04:23 #2
<%
Response.Buffer = False

On Error Resume Next

Response.Write "Siden opdateres..."

' Åben databasen

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".. ?

/theSurfer
Avatar billede netro Nybegynder
30. juni 2005 - 04:31 #3
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.
Avatar billede netro Nybegynder
30. juni 2005 - 04:31 #4
- fx. med en Response.Flush nederst.
Avatar billede busschou Praktikant
30. juni 2005 - 10:13 #5
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)
Avatar billede lars_hoeberg Praktikant
30. juni 2005 - 15:45 #6
Skal lige have tid til at prøve jeres forslag. Vender tilbage hurtigst muligt
Avatar billede thesurfer Nybegynder
01. juli 2005 - 01:52 #7
netro> Ah.. nu kan jeg se hvad du mener (30/06-2005 04:31:14 + 30/06-2005 04:31:52).. det giver mening..
Hvad der så ikke giver mening, er:

"Jeg forestiller mig, at han vil tjekke forbindelsen til databasen på hver side, hvor han skal bruge den"

Hvorfor skulle han "checke" forbindelse?

Forbindelsen oprettes, når man skal bruge den.. ellers ikke.. no?

/theSurfer
Avatar billede netro Nybegynder
01. juli 2005 - 02:04 #8
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.
Avatar billede thesurfer Nybegynder
01. juli 2005 - 02:18 #9
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..

/theSurfer
Avatar billede netro Nybegynder
01. juli 2005 - 02:39 #10
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.
Avatar billede thesurfer Nybegynder
01. juli 2005 - 02:45 #11
Der vil være et tidspunkt (sikkert millisekunder :-) ), hvor der ikke vil være adgang til filen, idet den bliver overskrevet..

Men det kunne jo også være, at han slettede database-filen, og derefter uploaded den opdaterede database-fil..

Det ved vi først, når lars_hoeberg kommer med noget feedback.. :-)

Jeg smutter i seng nu.. kigger nok forbi omkring middag..

/theSurfer
Avatar billede lars_hoeberg Praktikant
10. juli 2005 - 11:29 #12
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"
Avatar billede busschou Praktikant
10. juli 2005 - 11:33 #13
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
Avatar billede thesurfer Nybegynder
10. juli 2005 - 13:18 #14
1)

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/

/theSurfer
Avatar billede netro Nybegynder
10. juli 2005 - 17:50 #15
Jeg har lidt svært ved at se idéen i at sætte en variabel til sand/falsk i selve koden, når det hele kan ske automatisk med en On Error Resume Next.

Men prøv de foskellige løsninger og se, hvad du bedst kan lide.
Avatar billede busschou Praktikant
10. juli 2005 - 17:54 #16
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)
Avatar billede netro Nybegynder
10. juli 2005 - 17:56 #17
Det er rigtigt, men det ene udelukker vel ikke det andet?
Avatar billede busschou Praktikant
10. juli 2005 - 17:56 #18
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)
Avatar billede thesurfer Nybegynder
10. juli 2005 - 17:58 #19
Man plejer at gå efter minimal "nedetid", for brugerenes skyld..

/theSurfer
Avatar billede busschou Praktikant
10. juli 2005 - 17:58 #20
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
Avatar billede busschou Praktikant
10. juli 2005 - 18:00 #21
thesurfer >> hvad sker der hvis man omdøber databasen mens nogen opdaterer den? ;o)
Avatar billede busschou Praktikant
10. juli 2005 - 18:01 #22
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)
Avatar billede netro Nybegynder
10. juli 2005 - 18:03 #23
Tjo.. Jeg ville foretrække aldrig at redigere den lokalt.
Avatar billede thesurfer Nybegynder
10. juli 2005 - 18:04 #24
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... :-)

/theSurfer
Avatar billede netro Nybegynder
10. juli 2005 - 18:04 #25
Det er kun fejl i etablering af forbindelsen, der vil give meddelelsen, når vi bruger GoTo 0 bagefter.
Avatar billede busschou Praktikant
10. juli 2005 - 18:07 #26
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)
Avatar billede busschou Praktikant
10. juli 2005 - 18:08 #27
thesurfer >> Hvad gør Opera i det tilfælde i forhold til andre browsere?, for det har vel med scriptet at gøre og ikke browseren?
Avatar billede netro Nybegynder
10. juli 2005 - 18:12 #28
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.
Avatar billede thesurfer Nybegynder
10. juli 2005 - 18:15 #29
Hvis du klikker Back/Tilbage i Opera, vil dine data stadig stå i felter.. det gør det ikke i Internet Explorer, og vist heller ikke i FireFox..

IE og FF loader siden igen.. det gør Opera ikke.. hvilket jeg synes er very nice :-)

/theSurfer
Avatar billede busschou Praktikant
10. juli 2005 - 18:16 #30
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)
Avatar billede busschou Praktikant
10. juli 2005 - 18:21 #31
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)
Avatar billede thesurfer Nybegynder
10. juli 2005 - 18:31 #32
busschou>

Yep.. Opera-fan.. både på bærbaren, og på mobilen (NetFront på mobilen er vist lidt bedre..)

En søgning ( http://www.google.com/search?q=opera+transparent+iframe ) gav bl.a.:
http://www.forum4designers.com/archive60-2004-12-154971.html

(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..

PS: Jeg tror ikke, at vi har talt om det før..


lars_hoeberg> Choose Your Destiny :-)

/theSurfer
Avatar billede netro Nybegynder
10. juli 2005 - 18:31 #33
Jeg ved ikke, hvad fejlkoden er, men det kan vi hurtigt finde ud af med:

Response.Write Err.Number
Avatar billede thesurfer Nybegynder
10. juli 2005 - 18:34 #34
Jeg plejer at lave en reponse.write err.number & " - " & err.description .. så får man også beskrivelsen med..

/theSurfer
Avatar billede busschou Praktikant
10. juli 2005 - 18:35 #35
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)
Avatar billede netro Nybegynder
10. juli 2005 - 18:36 #36
Den er også en del mere sigende.
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