Glengamoi · AspHeute (Artikel) · .NET Heute (RSS-Suche) · .NET Blogs · Glengamoi Suche (Installieren via Klick)

Glengamoi

Die Diskussionsforen der deutschen .NET Community
Willkommen bei Glengamoi. Anmeldung | Registrieren | Hilfe
in Suchen

Bilddatenbank(Access) abfragen

Letzter Beitrag 11-10-2006 14:18 von JergTheurer. 42 Antworten.
Seite 1 von 3 (43 Treffer) 1 2 3 > Weiter
Beiträge sortieren: Zurück Weiter
  • 10-15-2006 20:23

    Bilddatenbank(Access) abfragen

    Hallo,

    habe eine Anfängerfrage: habe keinerlei Ahnung von asp, möchte aber eine kleine Sache in einem bestehenden Sourcecode ändern. Habe hier einen Code für eine Abfrage von Bildern aus einer Access-Datenbank. Das funktioniert prinzipiell schon so, wie ich das will, nur möchte ich eben nicht alle Bilder auf der Index.asp-Seite abgebildet haben, sondern immer nur eines und dann die Möglichkeit, mit einem Button auf den nächsten Datensatz  zu kommen. Ich dneke, dass das irgendwo in diesem Teil des Codes zu ändern sein müßte.

    Danke und ich hoffe, verständlich geschrieben zu haben.

     

    <%
    i=1
    While Not rs.EOF
    varBildKL = Trim(rs("fldBildKL"))
    varBildGR = Trim(rs("fldBildGR"))
    varBildText = Trim(rs("fldBildText"))
    varKategorie = Trim(rs("fldKategorie"))
    varBildBeschreibung = Trim(rs("fldBildBeschreibung"))
    %>

    Das HREF Tag des Bildes ist interessant: das onClick Ereignis öffnet ein Fenster mit dem großen Bild:

    <a href="javascript:;" onclick="window.open('detailbild.asp?bild=<% = varBildGR %>',
    'Anzeige',
    'titlebar=no,toolbar=no,status=no,menubar=no,resizeable=yes')">
    <img src="<% = varBildKL %>" width="135" height="94" border="0" alt="mit Klick Detailbild ansehen">
    </a>

    Der zweite HREF Tag (Details... Link) läßt mit dem mouseOver Event das versteckte DIV-Tag mit der langen Beschreibung des Bildes erscheinen:

    <a href=" javascript:;"  onMouseOver="MM_showHideLayers('text<% = i %>','','show')" 
    onMouseOut="MM_showHideLayers('text<% = i %>','','hide')"><br> Details...</a></font></b>
    <div id="text<% = i %>" style='position:absolute; width:319px; height:117px; z-index:1;
    background-color: #FFFFCC; layer-background-color: #FFFFCC;
    border: 1px none #000000; visibility: hidden">
    <b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    <% = varBildBeschreibung %></font></b>
    </div>

    </td></tr>

    <%
    rs.MoveNext
    i = i + 1
    Wend

    rs.Close
    %>

     

    Gruß,

    Jerg
    • IP-Adresse ist Registriert
  • 10-16-2006 10:06 Antwort zu

    AW: Bilddatenbank(Access) abfragen

    der logischste Weg ist Deine Select Anweisung im SQLString entsprechend anzupassen.

     also z.B. rs.open "Select * From TabellenName where ID=5"[,...]

    Chris

    • IP-Adresse ist Registriert
  • 10-16-2006 20:15 Antwort zu

    AW: Bilddatenbank(Access) abfragen

    Aber da sprech ich ja dann immer nur den Datensatz mit der ID 5 an, oder ?! Oder bin ich auf dem falschen Dampfer? 

    Will schon immer alle  Datensätze zur Verfügung haben, aber eben nur einen angezeigt haben... 

    Gruß,

    Jerg
    • IP-Adresse ist Registriert
  • 10-17-2006 10:01 Antwort zu

    AW: Bilddatenbank(Access) abfragen

    Wenn Du nur ein Bild anzeigen willst, dann reicht dieses ja

    Aber nun gut.... Deine Layer kannst Du ja noch einbauen... nur im Prinzip gehts so:

    <% 

    dim BildNr '

    BildNr= Request("BildNr")
    if BildNr="" then BildNr=0

    maxBildNr = rs.recordCount -1

    If BildNr>0 then 
              %> <a href="meieneSeite.asp?BildNr=<%=BildNr-1%>">zurück</a> <%
    end if

     

    for i = 0 to BildNr-1
           rs.MoveNext    'die Datensätze so lange durchgehen bis mein Bild da ist (BildNr)

           if BildNr>=MaxBildNr then exit for
    next

     varBildKL = Trim(rs("fldBildKL"))
    varBildGR = Trim(rs("fldBildGR"))
    varBildText = Trim(rs("fldBildText"))
    varKategorie = Trim(rs("fldKategorie"))
    varBildBeschreibung = Trim(rs("fldBildBeschreibung"))

     

    %>

    [....   Jetzt Deine Links und Bilder ]

     <%

    If BildNr<MaxBildNr then
               %> <a href="meieneSeite.asp?BildNr=<%=BildNr + 1%>">zurück</a> <%
    end if  

    %>

     

    • IP-Adresse ist Registriert
  • 10-17-2006 19:47 Antwort zu

    AW: Bilddatenbank(Access) abfragen

    Cool, danke. Dann probier ich's mal. Und wenn ich das nicht hinbekomme, dann geh ich Dir wieder auf den Sack...;-) Schönen Abend!
    Gruß,

    Jerg
    • IP-Adresse ist Registriert
  • 10-18-2006 21:00 Antwort zu

    AW: Bilddatenbank(Access) abfragen

    Chris Cluss:

    <% 

    dim BildNr '

    BildNr= Request("BildNr")
    if BildNr="" then BildNr=0

    maxBildNr = rs.recordCount -1

    If BildNr>0 then 
              %> <a href="meieneSeite.asp?BildNr=<%=BildNr-1%>">zurück</a> <%
    end if

     

    for i = 0 to BildNr-1
           rs.MoveNext    'die Datensätze so lange durchgehen bis mein Bild da ist (BildNr)

           if BildNr>=MaxBildNr then exit for
    next

     varBildKL = Trim(rs("fldBildKL"))
    varBildGR = Trim(rs("fldBildGR"))
    varBildText = Trim(rs("fldBildText"))
    varKategorie = Trim(rs("fldKategorie"))
    varBildBeschreibung = Trim(rs("fldBildBeschreibung"))

     

    %>

    [....   Jetzt Deine Links und Bilder ]

     <%

    If BildNr<MaxBildNr then
               %> <a href="meieneSeite.asp?BildNr=<%=BildNr + 1%>">zurück</a> <%
    end if  

    %>

     

    Hab's damit mal versucht. Die Vorschau sieht auch gut aus, aber leider bringt der Browser eine Fehlermeldung, dass eine "Expression" fehlen würde und macht's mir nicht auf. Fehlt vielleicht ein end if? Oder ist das gar nicht JavaScript? Steinige mich nicht, aber ich muss so naiv fragen...:-)

    Was meinst Du mit Layer? 

    Gruß, Jerg 

     

    Gruß,

    Jerg
    • IP-Adresse ist Registriert
  • 10-19-2006 10:02 Antwort zu

    AW: Bilddatenbank(Access) abfragen

    Hallo Jerg,

     

    Poste mal Deinen kompletten Code der Seite und die genaue Fehlermeldung.

    Nein, das ist kein Javascript sondern VBScript bzw ASP.

    Abgesehen davon mal die Frage: Warum benutzt Du überhaupt asp und nicht ASP.NET?
    Wenn Du schon was neues lernst dann rate ich Dir gleich was "richtiges" zu lernen.

    Chris

    PS: zum steinigen bitte ich Dich  morgen früh pünktlich um 5:00 im Stadtgraben einzufinden.

    • IP-Adresse ist Registriert
  • 10-19-2006 21:24 Antwort zu

    AW: Bilddatenbank(Access) abfragen

    So, hier kommt der komplette Code. Ich benutze asp, weil ich es benutzen SOLL! :-)

    Jetz zeigt es mir das erste Bild an, aber leider anstatt der 1 eine null und die Buttons weiter und zurück sind nicht sochtbar und auch nicht nutzbar (unsichtbar oder so mein ich..)

    Danke für Deine Mühe! Ich weiß das zu schätzen! Gruß,

    Jerg

    !--#include file="tools.asp"-->

    <%

    OpenDB con, "Bilder"

    SQL = "SELECT fldID,fldBildKL,fldBildGR,fldBildText,fldBildBeschreibung,fldKategorie FROM tblBilder ORDER BY fldID ASC"

    Set rs = con.Execute(SQL)

    %>

    <html>

    <head>

    <title>Bilder</title>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <script language="JavaScript">

    <!--

    function MM_reloadPage(init) { //reloads the window if Nav4 resized

    if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {

    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

    else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

    }

    MM_reloadPage(true);

     

    function MM_findObj(n, d) { //v4.0

    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

    if(!x && document.getElementById) x=document.getElementById(n); return x;

    }


    //-->

    </script>

    </head>

    <body bgcolor="#FFFFFF" text="#000000">

    <table width="80%" border="0" cellspacing="0" cellpadding="0">

    <tr align="center">

    <td colspan="3" bgcolor="#999999"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Bilder

    (Klick auf das Bild um ein gr&ouml;&szlig;eres Bild zu sehen) </font></b></td>

    </tr>

    <tr>

    <td width="10%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></b></td>

    <td>

    <table width="100%" border="0" cellspacing="0" cellpadding="0">

    <%

    dim BildNr


    BildNr = Request (“BildNr”)

    if BildNr=”” then BildNr=0


    maxBildNr = rs.RecordCount-1


    if BildNr>0 then

    %><a href=”default_Test.asp?BildNr=<%= BildNr-1 %>”>zurück</a><%

    end if


    for i=0 to BildNr-1

    rs.MoveNext


    if BildNr>=maxBildNr then exit for

    next

    varBildKL = Trim(rs(“fldBildKL”))

    varBildGR = Trim(rs(“fldBildGR”))

    varBildText = Trim(rs(“fldBildText”))

    varKategorie = Trim(rs(“fldKategorie”))

    varBildBeschreibung = Trim(rs(“fldBildBeschreibung”))

    %>

    <tr align="center">

    <td width="33%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">

    <% = i %>

    .)&nbsp;

    <% = varKategorie %>

    </font></b></td>

    <td width="33%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="javascript:;" onclick="window.open('detailbild.asp?bild=<% = varBildGR %>','Anzeige','titlebar=no,toolbar=no,status=no,menubar=no,resizeable=yes')"><img src="<% = varBildKL %>" width="135" height="94" border="0" alt="mit Klick Detailbild ansehen"></a></font></b></td>

    <td width="33%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">

    <% = varBildText %>

    &nbsp;<br>

    <% = varBildText %></a></font></b>

    <b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">

    <% = varBildBeschreibung %>

    </font></b></div>

    </td>

    </tr>

    <% if BildNr<maxBildNr then

    %><a href=”default_Test.asp?BildNr=<% =BildNr+1>”>weiter</a><%

    end if

    %>

    </table>

    <b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></b></td>

    <td width="10%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></b></td>

    </tr>

    <tr align="right">

    <td colspan="3" bgcolor="#999999"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF"</font></b></td>

    </tr>

    </table>

    </body>

    </html>

     

     

    Gruß,

    Jerg
    • IP-Adresse ist Registriert
  • 10-19-2006 23:32 Antwort zu

    Re: AW: Bilddatenbank(Access) abfragen

    Also ich mach mal die gröbsten sichtbaren Schnitzer weg und bring nur minimale Ordnung ins Gestrüpp damit ich nicht selbst über die eigenen Füsse stolper, dann sehe ich
    1. wenn keine Bildnummer angegeben ist, dürfte er das zweite Bild in der Serie anzeigen
    2. Es wird wohl der Link  für das Folgebild (das nächste in der Serie) berechnet, das Bild selbst aber nicht angezeigt.
    Recht viel mehr an funktionalität kann man da nicht hinein interpretieren, weil auch nicht recht viel mehr da ist.   Oder was habe ich da noch übersehen?  Anderer Gedanke man verbindet die Übung des Entwirrens und bringt es gleich allgemein ein bischen in Ordnung.  So in der Reihenfolge zuerst Hinschmalz investieren, dann lesbar codieren, mit vertretbaren Aufwand debuggen und gut ist.  Ist dann wurscht ob Classic ASP oder was anderes  :-)
     
    Gruß
    Hubert
     
     
    <!>
    <% 
     OpenDB con, "Bilder"
     SQL = "SELECT fldID,fldBildKL,fldBildGR,fldBildText,fldBildBeschreibung,fldKategorie FROM tblBilder ORDER BY fldID ASC"
     Set rs = con.Execute(SQL)
     
     Dim BildNr
     BildNr = Request ("BildNr")
     if BildNr = "" Then BildNr = 0
     maxBildNr = rs.RecordCount - 1
     If BildNr > 0 then
      Response.Write "<a href=""default_Test.asp?BildNr=" & BildNr - 1 & """>zurück</a>"
     End if
     
     For i = 0 to BildNr - 1
      rs.MoveNext
      If BildNr >= maxBildNr Then Exit For
     Next
     
     varBildKL = Trim(rs("fldBildKL"))
     varBildGR = Trim(rs("fldBildGR"))
     varBildText = Trim(rs("fldBildText"))
     varKategorie = Trim(rs("fldKategorie"))
     varBildBeschreibung = Trim(rs("fldBildBeschreibung"))
     
    %>
    <html>
    <head>
    <title>Bilder</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
     
    <table width="80%" border="0" cellspacing="0" cellpadding="0">
     <tr align="center">
      <td colspan="3" bgcolor="#999999"><b>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Bilder (Klick auf das Bild um ein
      größeres Bild zu sehen) </font></b></td>
     </tr>
     <tr>
      <td width="10%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></b></td>
      <td>
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
       <tr align="center">
        <td width="33%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><% = i %> .)&nbsp; <% = varKategorie %>
        </font></b></td>
        <td width="33%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <a href="#" onclick="window.open('detailbild.asp?bild=<% = varBildGR %>','Anzeige','titlebar=no,toolbar=no,status=no,menubar=no,resizeable=yes')">
        <img src="<% = varBildKL %>" width="135" height="94" border="0" alt="mit Klick Detailbild ansehen"></a></font></b></td>
        <td width="33%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><% = varBildText %>&nbsp;
        <br>
        <% = varBildText %></a></font></b> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><% = varBildBeschreibung %>
        </font></b></div>
        </td>
       </tr>
       <%
       If BildNr < maxBildNr Then
        Response.Write "<a href=""default_Test.asp?BildNr=" & BildNr + 1 & """>weiter</a>"
       End If
       %>
      </table>
      <b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></b></td>
     </tr>
     <tr>
      <td width="10%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">da steht nix</font></b></td>
     </tr>
     <tr align="right">
      <td colspan="3" bgcolor="#999999"><b>da steht nix</b></td>
     </tr>
    </table>
     
    </body>
     
    </html>
    • IP-Adresse ist Nicht registriert
  • 10-20-2006 9:58 Antwort zu

    AW: Re: AW: Bilddatenbank(Access) abfragen

    So, danke auch Dir für die Mühe, jedoch habe ich auch  hier das Ergebnis, dass ich eine 0 angezeigt bekomme und beide "Buttons" nicht. DB-Verbidndung passt meines Erachtens. Es sind insgesamt zum Testen 5 Bilder drin, die er auch ausliest, wenn man das Ganze komplett auf eine Seite ausgeben läßt.

    Was kann es sein? *verzweifel*

    Gruß,

    Jerg
    • IP-Adresse ist Registriert
  • 10-20-2006 10:45 Antwort zu

    AW: Re: AW: Bilddatenbank(Access) abfragen

     Was bedeutet, dass Du eine 0 angezeigt bekommst?...

    Mit welchen Objekten  greifst Du auf die Datenbank zu?

    irgendwo (tools.asp???)muss was stehen wie
           con=server.createObject("????")   und
           rs= server.createObject("????")

    ---------------------------

    Ok jetzt checken wir erst mal die Funktionalitäten:

    Was gibt den das hier aus?

    OpenDB con, "Bilder"
     SQL = "SELECT fldID,fldBildKL,fldBildGR,fldBildText,fldBildBeschreibung,fldKategorie FROM tblBilder ORDER BY fldID ASC"
     Set rs = con.Execute(SQL) 
     Response.write "RecordCount: " &  rs.RecordCount & "<br>"

     rs.MoveLast

     Response.write "RecordCount mit MoveLast: " &  rs.RecordCount & "<br>"

    Wenn Die zweite Variante Das richtige Ergebnis liefert, dann ändere Deine Code folgendermaßen:

     OpenDB con, "Bilder"
     SQL = "SELECT fldID,fldBildKL,fldBildGR,fldBildText,fldBildBeschreibung,fldKategorie FROM tblBilder ORDER BY fldID ASC"
     Set rs = con.Execute(SQL)
     
     Dim BildNr
     BildNr = Request ("BildNr")
     if BildNr = "" Then BildNr = 0

    Dim maxBildNr 
    rs.MoveLast
       maxBildNr = rs.RecordCount - 1
    rs.MoveFirst

    '[ und dann weiter wie vorher]
     If BildNr > 0 then
      Response.Write "<a href=""default_Test.asp?BildNr=" & BildNr - 1 & """>zurück</a>"
     End if  

     

    • IP-Adresse ist Registriert
  • 10-20-2006 11:28 Antwort zu

    AW: Re: AW: Bilddatenbank(Access) abfragen

    Das ist die Fehlermeldung, die ich kriege:

    Error Type:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E24)
    Rowset does not support fetching backward.
    /.../default_Test2.asp

    Bei der MoveLast.... Sache.

    Die Tools.asp sieht folgendermaßen aus:

     

    <%

    '--- establish access connection

    Sub OpenDB (ByRef con, d)

    DB = d & ".mdb"

    Dir = Request.ServerVariables("SCRIPT_NAME")

    Dir = StrReverse(Dir)

    Dir = Mid(Dir, InStr(1, Dir, "/"))

    Dir = StrReverse(Dir)

    Path = Server.MapPath(Dir) & "\"

    DSN = "DRIVER=Microsoft Access Driver (*.mdb);UID=admin;ReadOnly=0;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=512;ImplicitCommitSync=Yes;FIL=MS Access;DriverId=25" & ";DefaultDir=" & Path & ";DBQ=" & Path & DB & ";"

    Set con = Server.CreateObject("ADODB.Connection")

    con.Open DSN

    End Sub

    %>

    Gruß,

    Jerg
    • IP-Adresse ist Registriert
  • 10-20-2006 11:36 Antwort zu

    AW: Re: AW: Bilddatenbank(Access) abfragen

     dann probiere mal:

    OpenDB con, "Bilder"
     SQL = "SELECT fldID,fldBildKL,fldBildGR,fldBildText,fldBildBeschreibung,fldKategorie FROM tblBilder ORDER BY fldID ASC"
     Set rs = con.Execute(SQL) 
     Response.write "RecordCount: " &  rs.RecordCount & "<br>"

     rs.MoveLast

     Response.write "RecordCount mit MoveLast: " &  rs.RecordCount & "<br>"

    Wenn Die zweite Variante Das richtige Ergebnis liefert, dann ändere Deine Code folgendermaßen:

     OpenDB con, "Bilder"
     SQL = "SELECT fldID,fldBildKL,fldBildGR,fldBildText,fldBildBeschreibung,fldKategorie FROM tblBilder ORDER BY fldID ASC" 
     

    RS1.Open SQL ,con,2,3,1


     Dim BildNr
     BildNr = Request ("BildNr")
     if BildNr = "" Then BildNr = 0


     Dim BildNr
     BildNr = Request ("BildNr")
     if BildNr = "" Then BildNr = 0

    Dim maxBildNr 
    rs.MoveLast
       maxBildNr = rs.RecordCount - 1
    rs.MoveFirst

    '[ und dann weiter wie vorher]
     If BildNr > 0 then
      Response.Write "<a href=""default_Test.asp?BildNr=" & BildNr - 1 & """>zurück</a>"
     End if  

     

     

    • IP-Adresse ist Registriert
  • 10-20-2006 11:37 Antwort zu

    AW: Re: AW: Bilddatenbank(Access) abfragen

    Sorry natürlich so:

     OpenDB con, "Bilder"
     SQL = "SELECT fldID,fldBildKL,fldBildGR,fldBildText,fldBildBeschreibung,fldKategorie FROM tblBilder ORDER BY fldID ASC" 
     

    RS.Open SQL ,con,2,3,1

     

     


     Dim BildNr
     BildNr = Request ("BildNr")
     if BildNr = "" Then BildNr = 0

    Dim maxBildNr 
    rs.MoveLast
       maxBildNr = rs.RecordCount - 1
    rs.MoveFirst

    '[ und dann weiter wie vorher]
     If BildNr > 0 then
      Response.Write "<a href=""default_Test.asp?BildNr=" & BildNr - 1 & """>zurück</a>"
     End if  

     

    • IP-Adresse ist Registriert
  • 10-20-2006 11:41 Antwort zu

    AW: Re: AW: Bilddatenbank(Access) abfragen

    Sorry natürlich so:

     OpenDB con, "Bilder"
     SQL = "SELECT fldID,fldBildKL,fldBildGR,fldBildText,fldBildBeschreibung,fldKategorie FROM tblBilder ORDER BY fldID ASC" 

    Set RS = Server.CreateObject("ADODB.Recordset")

    RS.Open SQL ,con,2,3,1


     Dim BildNr
     BildNr = Request ("BildNr")
     if BildNr = "" Then BildNr = 0

    Dim maxBildNr 
    rs.MoveLast
       maxBildNr = rs.RecordCount - 1
    rs.MoveFirst

    '[ und dann weiter wie vorher]
     If BildNr > 0 then
      Response.Write "<a href=""default_Test.asp?BildNr=" & BildNr - 1 & """>zurück</a>"
     End if  

    • IP-Adresse ist Registriert
Seite 1 von 3 (43 Treffer) 1 2 3 > Weiter