Avatar billede technodance.dk Nybegynder
01. december 2002 - 16:35 Der er 17 kommentarer

vis databasen er tom

hej læser


jeg har en kunde database som ordre i..

mit sp. er:

jeg skal bruge et script til vis min database er tom så skal den skrive at den er tom..

//technodance.dk//
Avatar billede eagleeye Praktikant
01. december 2002 - 16:37 #1
Du kan tjekke på om et recordset er tomt med EOF..:

SQL = "SELECT * FROM tabel"
Set rs = Connection.Execute(SQL)

if rs.EOF then
  Response.write "Databasen er tom :("
else

end if
Avatar billede technodance.dk Nybegynder
01. december 2002 - 16:43 #2
jeg får denne fejl når der ikke nået i databasen:
ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/bruger2003/besked/vis_besked.asp, line 0
Avatar billede eagleeye Praktikant
01. december 2002 - 16:45 #3
hvordan ser koden ud?
Avatar billede humlebidk Nybegynder
01. december 2002 - 16:56 #4
hvis dine data ligger i arrayet oRs og der skal være data for at du eksekverer:

if(oRs.BOF | oRs.EOF) { Response.Write("ingen data") }
if(!oRs.BOF | !oRs.EOF) { Response.Write("der er data!") }

Dette ville virke i JScript & med lidt held i VBS. =)
Avatar billede technodance.dk Nybegynder
01. december 2002 - 17:50 #5
her er coden:
<%
Response.Buffer = True
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../../database/bruger.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
%>

<%
sql ="SELECT * FROM besked Where kundenummer =" & Request.Querystring("kundenummer")
Set Rs = Conn.Execute(sql)
%>
Avatar billede eagleeye Praktikant
01. december 2002 - 17:54 #6
Så prøv at tilføje efter SQL sætnignen:

<%
sql ="SELECT * FROM besked Where kundenummer =" & Request.Querystring("kundenummer")
Set Rs = Conn.Execute(sql)

if rs.EOF then
  Response.write "Databasen er tom :("
else

  'Udskriv fra databasen her evt i et loop

end if
Avatar billede technodance.dk Nybegynder
01. december 2002 - 19:47 #7
den viser fejlen endnu
Avatar billede technodance.dk Nybegynder
01. december 2002 - 20:30 #8
der nogle andre der kan komme med et svar
Avatar billede eagleeye Praktikant
01. december 2002 - 20:33 #9
Prøv at rette if sætnigen fra:

if rs.EOF then

til:

if rs.EOF OR rs.BOF then
Avatar billede technodance.dk Nybegynder
01. december 2002 - 20:42 #10
her der hele siden kan i så hjælpe mig håb

(---------------------------------------------)

<%
Response.Buffer = True
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../../database/bruger.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
%>

<%
sql ="SELECT * FROM besked Where kundenummer =" & Request.Querystring("kundenummer")
Set Rs = Conn.Execute(sql)
%>
<html>

<head>
<meta http-equiv="Content-Language" content="da">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>vis besked</title>
</head>

<body bgcolor="#0B99EE">

<p>&nbsp;</p>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  <tr>
    <td width="100%">
    <p align="center"><b><font size="5">Indbakke for din Beskeder</font></b></p>
    <div align="center">
      <center>
      <table border="1" cellpadding="0" cellspacing="0" style="border-style:solid; border-collapse: collapse; font-weight: bold; " bordercolor="#FFFFFF" width="503" id="AutoNumber3">
        <tr>
          <td width="116" style="border-style: none; border-width: medium">
          <p align="center">
          <a href="vis_besked.asp?kundenummer=<%=rs("kundenummer")%>">Check Post</a></td>
          <td width="137" style="border-style: none; border-width: medium">
          <p align="center">
          <a href="skriv.asp?id=<%=rs("kundenummer")%>">Send Post</a></td>
          <td width="158" style="border-style: none; border-width: medium">
          <p align="center">&nbsp;</p>
          </td>
          <td width="92" style="border-style: none; border-width: medium">
          &nbsp;</td>
        </tr>
      </table>
      </center>
    </div>
    <div align="center">
      <center>
      <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-left-width: 0; border-right-width: 0; border-top-width: 0" bordercolor="#FFFFFF" width="503" id="AutoNumber2" height="46">
        <tr>
          <td width="9%" style="border-left-color: #FFFFFF; border-left-width: 1" height="1">
          <p align="center"><b>Slet</b></td>
          <td width="10%" style="border-right-color: #FFFFFF; border-right-width: 1" height="1">
          <b>Afsender</b></td>
          <td width="81%" style="border-right-color: #FFFFFF; border-right-width: 1" height="1">
          <b>Besked</b></td>
        </tr>
<% Do While Not rs.EOF %>
        <tr>
          <td width="9%" style="border-left-color: #FFFFFF; border-left-width: 1" height="17">
          <p align="center">
          <b><a href="slet_besked.asp?id=<%=rs("id")%>">Slet</a></b></p>
      </td>
          <td width="10%" style="border-right-color: #FFFFFF; border-right-width: 1" height="17">
          <p align="center"><b><font color="#FFFFFF"><%=rs("fra")%></font></b></td>
          <td width="81%" style="border-right-color: #FFFFFF; border-right-width: 1" height="17">
          <b><font color="#FFFFFF"><%=rs("besked")%></font></b></td>
<% Rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing
%>
        </tr>
      </table>
      </center>
    </div>
    </td>
  </tr>
</table>

</body>

</html>
(-------------------------------------------------------)
Avatar billede eagleeye Praktikant
01. december 2002 - 20:50 #11
Der bliver udskrivet fra recordsetet unden tjek på om det er tomt og uden for loopet som ellers ville sikre der ikke blev udskrevet hvis det var tomt.
Det sker eksvis her:

          <a href="vis_besked.asp?kundenummer=<%=rs("kundenummer")%>">Check Post</a></td>


------

Prøv efter <body bgcolor="#0B99EE"> at tilføje:


<body bgcolor="#0B99EE">
<% if rs.EOF or rs.BOF then %>


og igen før </body>

<% else %>
  <center>Databasen er tom!</center>
<% end if%>
</body>
Avatar billede technodance.dk Nybegynder
01. december 2002 - 21:25 #12
kan ud ikke skrive det jeg forstå det ikke lige så godt
Avatar billede technodance.dk Nybegynder
01. december 2002 - 21:25 #13
du
Avatar billede eagleeye Praktikant
01. december 2002 - 21:36 #14
Fejlen "Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record."  kommer fordi man udskriver fra et recordset som er tomt. For at sikre sig man ikke får fejlen laver man loops med "do while not rs.EOF" som du også har. Men inden det uskriver du rs("et_kolonnenavn") og dermed kommer fejlen... så prøv at rette din kode til:



<%
Response.Buffer = True
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../../database/bruger.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
%>

<%
sql ="SELECT * FROM besked Where kundenummer =" & Request.Querystring("kundenummer")
Set Rs = Conn.Execute(sql)
%>
<html>

<head>
<meta http-equiv="Content-Language" content="da">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>vis besked</title>
</head>

<body bgcolor="#0B99EE">
<% if rs.EOF or rs.BOF then %>

<p>&nbsp;</p>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  <tr>
    <td width="100%">
    <p align="center"><b><font size="5">Indbakke for din Beskeder</font></b></p>
    <div align="center">
      <center>
      <table border="1" cellpadding="0" cellspacing="0" style="border-style:solid; border-collapse: collapse; font-weight: bold; " bordercolor="#FFFFFF" width="503" id="AutoNumber3">
        <tr>
          <td width="116" style="border-style: none; border-width: medium">
          <p align="center">
          <a href="vis_besked.asp?kundenummer=<%=rs("kundenummer")%>">Check Post</a></td>
          <td width="137" style="border-style: none; border-width: medium">
          <p align="center">
          <a href="skriv.asp?id=<%=rs("kundenummer")%>">Send Post</a></td>
          <td width="158" style="border-style: none; border-width: medium">
          <p align="center">&nbsp;</p>
          </td>
          <td width="92" style="border-style: none; border-width: medium">
          &nbsp;</td>
        </tr>
      </table>
      </center>
    </div>
    <div align="center">
      <center>
      <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-left-width: 0; border-right-width: 0; border-top-width: 0" bordercolor="#FFFFFF" width="503" id="AutoNumber2" height="46">
        <tr>
          <td width="9%" style="border-left-color: #FFFFFF; border-left-width: 1" height="1">
          <p align="center"><b>Slet</b></td>
          <td width="10%" style="border-right-color: #FFFFFF; border-right-width: 1" height="1">
          <b>Afsender</b></td>
          <td width="81%" style="border-right-color: #FFFFFF; border-right-width: 1" height="1">
          <b>Besked</b></td>
        </tr>
<% Do While Not rs.EOF %>
        <tr>
          <td width="9%" style="border-left-color: #FFFFFF; border-left-width: 1" height="17">
          <p align="center">
          <b><a href="slet_besked.asp?id=<%=rs("id")%>">Slet</a></b></p>
      </td>
          <td width="10%" style="border-right-color: #FFFFFF; border-right-width: 1" height="17">
          <p align="center"><b><font color="#FFFFFF"><%=rs("fra")%></font></b></td>
          <td width="81%" style="border-right-color: #FFFFFF; border-right-width: 1" height="17">
          <b><font color="#FFFFFF"><%=rs("besked")%></font></b></td>
<% Rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing
%>
        </tr>
      </table>
      </center>
    </div>
    </td>
  </tr>
</table>

<% else %>
  <center>Databasen er tom!</center>
<% end if%>
</body>

</html>
Avatar billede technodance.dk Nybegynder
02. december 2002 - 00:59 #15
her så kan du selv se havd den skriver

Http://asp-server.dk/bruger2003

kundenummer: 12345678
password: 12345678

så skal vu klikke på test

ud for beskeder: indbakke
Avatar billede vtm Nybegynder
02. december 2002 - 01:21 #16
Jeg har brugt en til min ene side...
Det var en database hvor til du havde mulighed for at uploade et billede og se dem bagefter på en asp side...
Men den skrev når databasen var tom

<%
Set DataConn = Server.CreateObject("ADODB.Connection")
DataConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("Database.mdb") & ""

SQL = "Select * From Billeder"
Set RS = DataConn.Execute(SQL)

If (RS.EOF Or RS.BOF) Then
  Response.Write("Der er ingen billeder i databasen.")
Else
  Do Until Rs.EOF
    Response.Write("<img border=""1"" src=""Vis_billede.asp?Id=" & RS("Id") & """>&nbsp;")
    Rs.MoveNext
  Loop
End If

RS.Close
Set RS = Nothing

DataConn.Close
Set DataConn = Nothing
%>

Kun et foreslag
Avatar billede technodance.dk Nybegynder
05. december 2002 - 01:52 #17
afvis på grund fra:

det skal være som jeg har sat min design op at dem skal skrive dat der er ikke nogle beskeder...

og det skal den kun skrive vis der ikk er noget i databasen

.:technodance.dk//:.
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