27. januar 2002 - 18:59Der er
7 kommentarer og 4 løsninger
Detect...
Halløjsa...
Jeg har en access database hvor jeg udskriver en billedsti. Hvis du biledet som stien er blevet slettet, tilfældigvis... hvordan kan jeg så detecte at der ikke noget billede er og indsætter derefter et standard billede.
Du kan bruge The FileSystemObject til at detektere om filen findes, du kan finde mere info omkrig det ved at kigge under MSDN hos microsoft eller søge lidt på google.com under FileSystemObject
<% sQuery = "SELECT sFileName FROM myoddtable" Set oRS = oDBC.Execute(sQuery)
sFileName = oRS("sFileName")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject") If(oFileSys.FileExists(Server.MapPath(sMyPath & sFileName)) Then ' Udfør dette hvis billedet eksisterer Else ' Ellers gør dette End If
Set oFileSys = Nothing Set oRS = Nothing
%>
Jeg er ikke 100% på om syntaxen er helt korrekt, men ca sådan.
<% SQL = "select * from TABEL where id=" & request.querystring("id") set rs = con.execute (SQL) if rs("billedsti") = "" then %> <IMG SRC="images/billedfejl.jpg" BORDER="0"> <% else %> <IMG SRC="images/<%=rs("billedsti")%>" BORDER="0"> <% end if %>
Goose ->> God idé! Men du har glemt noget i SQL'en ! Prøv hellere:
<% SQL = "select * from TABEL where id=" & request.querystring('id')" set rs = con.execute (SQL) if rs("billedsti") = "" then %> <IMG SRC="images/billedfejl.jpg" BORDER="0"> <% else %> <IMG SRC="images/<%=rs("billedsti")%>" BORDER="0"> <% end if %>
Goose ->> Nej for du starter "select en, så skal den også slutte med ". Jeg har lige opdaget en ny fejl:
<% SQL = "select * from TABEL where id=' & request.querystring('id')" set rs = con.execute (SQL) if rs("billedsti") = "" then %> <IMG SRC="images/billedfejl.jpg" BORDER="0"> <% else %> <IMG SRC="images/<%=rs("billedsti")%>" BORDER="0"> <% end if %>
Jeg er ikke 100% sikker på at jeg har ret, men jeg syntes bare jeg pleger at få en fejl når jeg gør det på din måde ;-).
Det er korrekt at jeg starter SQL'en med en " men jeg har også en efter id=" og da id er autonummeret fra databasen (går jeg ud fra), ja så skal den ikke i plinger. I dit sidst sendte eksempel, ja da har du en pling efter id=' og du har ikke nogen slutpling, altså vil du få en fejl.
Det er 10000 gange bedre at have konsistent data i sin base end at skulle tjekke hver gang at man udskriver et eller andet.
der er egentligt 2 måder at gøre det på:
1. kun tillade at man sletter billeder fysisk gennem webapplikationen og så derefter nulstille feltet i db'en.
2: lejligheds vist at køre en batch der tjekker på om billedet eksisterer på den angivne position, og opdatere databasen hvis billedet ikke eksisterer mere!
jeg kigger lige lidt på jeres forslag og vender tilbage senere
Synes godt om
Ny brugerNybegynder
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.