Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Select och räknare

Postades av 2003-02-12 11:13:35 - Christofer Wallér, i forum asp - allmänt, Tråden har 17 Kommentarer och lästs av 784 personer

Hallå.

Jag gör en sida som visar olika produkter, om kriterierna stämmer.
En produkt kan ha värde:
prod 1: 1,3 - 2,6
prod 2: 1,7 - 3,1
prod 3: 2,1 - 4,2

om kriteriet(ratio) är 1,9 så jämförs det mot db(throw1 & 2) och endast prod 1 och prod 2 ska hämtas och det gör dom, men skriver jag tex 25 så hämtas alla produkter, det måste vara fel på min select sats. Om kriteriet inte stämmer vill jag ha ett felmeddelande, hur gör man det?

Jag vill även ha en räknare så att endast 4 st produkter hämtas, hur gör man det?

Bifogar min kod.

Tack Christofer

<code>

<%
distance = Request.Form("distance")
width = Request.Form("width")
ratio = distance/width
Response.Write(ratio)

Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("test_db.mdb")
SQL = "SELECT * FROM prodTb WHERE '" & ratio & "' >= throw1 AND '" & ratio & "' <= throw2"
rs.Open SQL, Connect, 1, 2
Do while not rs.EOF
%>

<table width="500" border="0" cellpadding="3">
<tr bgcolor="#009900">
<td colspan="3" class="rubrik"><%=rs("namn")%></td>
</tr>
<tr>
<td width="120" align="center" valign="top"><img src="../bilder/prodbilder/<%=rs("bildkatalog")%>/<%=rs("bild_filnamn")%>" width="120"></td>
<td width="200" valign="top" class="brod"><%=rs("text")%><P>
</td>
</tr>
</table>

<%
rs.MoveNext
Loop

%>

</code>


Svara

Sv: Select och räknare

Postades av 2003-02-12 11:19:00 - Mattias Lind

Jag vill även ha en räknare så att endast 4 st produkter hämtas, hur gör man det?

Select Top 4 löser nog ditt problem om det var det du menade. Du kanske menade nån form av paging, eller?


Svara

Sv: Select och räknare

Postades av 2003-02-12 11:23:31 - Mattias Lind

Om kriteriet inte stämmer vill jag ha ett felmeddelande, hur gör man det?

Gör en kontroll innan Select-satsen

If ratio < högsta tillåtna värde Then
utför Select-satsen
Else
Felmeddelande här
End If


Svara

Sv: Select och räknare

Postades av 2003-02-12 11:40:04 - Christofer Wallér

Top 4 funkar, men då hämtas bara dom 4 första som stämmer med kriteriet. Produkterna kommer att rankas, så en ORDER BY kommer att tillkomma i select satsen, då funkar inte top 4, eller hur?

Jag trodde man hade typ

i = 1

osv någonting IF i = 4 then exit loop eller något.


/c


Svara

Sv: Select och räknare

Postades av 2003-02-12 11:46:16 - Mattias Lind

Top 4 funkar, men då hämtas bara dom 4 första som stämmer med kriteriet. Produkterna kommer att rankas, så en ORDER BY kommer att tillkomma i select satsen, då funkar inte top 4, eller hur?

TOP 4 funkar med ORDER BY oxå.


Svara

Sv: Select och räknare

Postades av 2003-02-12 11:47:36 - Christofer Wallér

Om jag vill lägga in Throw 2 som högsta värde, måste jag då inte kolla igenom databasen och hitta högsta värdet. Hur gör man i så fall?


Svara

Sv: Select och räknare

Postades av 2003-02-12 11:48:58 - Christofer Wallér

My mistake, det funkar alldeles utmärkt med Top 4


Tack Christofer


Svara

Sv: Select och räknare

Postades av 2003-02-12 11:54:07 - Mattias Lind

Om jag vill lägga in Throw 2 som högsta värde, måste jag då inte kolla igenom databasen och hitta högsta värdet. Hur gör man i så fall?

Select Max(Throw2) As iMax From...osv

If ratio < rs("iMax") Then
..
osv


Svara

Sv: Select och räknare

Postades av 2003-02-12 12:08:45 - Christofer Wallér

Menar du så här, jag har ju ingen post i databasen som heter iMax, men den är kanaske samma som throw2.

<code>

<%
distance = Request.Form("distance")
width = Request.Form("width")
ratio = distance/width
Response.Write(ratio)

Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("test_db.mdb")

Select Max(Throw2) As iMax From prodTb
If ratio < rs("iMax") Then
SQL = "SELECT Top 4 FROM prodTb WHERE '" & ratio & "' >= throw1 AND '" & ratio & "' <= throw2 ORDER BY id DESC"
Else
Felmeddelande här
End If

rs.Open SQL, Connect, 1, 2
Do while not rs.EOF
%>

<table width="500" border="0" cellpadding="3">
<tr bgcolor="#009900">
<td colspan="3" class="rubrik"><%=rs("namn")%></td>
</tr>
<tr>
<td width="120" align="center" valign="top"><img src="../bilder/prodbilder/<%=rs("bildkatalog")%>/<%=rs("bild_filnamn")%>" width="120"></td>
<td width="200" valign="top" class="brod"><%=rs("text")%><P>
</td>
</tr>
</table>

<%
rs.MoveNext
Loop

%>
</code>


Svara

Sv: Select och räknare

Postades av 2003-02-12 12:15:20 - Mattias Lind

Nope så här:

<code>
<%
distance = Request.Form("distance")
width = Request.Form("width")
ratio = distance/width
Response.Write(ratio)

Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("test_db.mdb")

SQL = "Select Max(Throw2) As iMax From prodTb"
Set rs = Connect.Execute(SQL)

If ratio < rs("iMax") Then
Set rs = Nothing
SQL = "SELECT Top 4 FROM prodTb WHERE '" & ratio & "' >= throw1 AND '" & ratio & "' <= throw2 ORDER BY id DESC"
Else
Felmeddelande här
End If

rs.Open SQL, Connect, 1, 2
Do while not rs.EOF
%>

<table width="500" border="0" cellpadding="3">
<tr bgcolor="#009900">
<td colspan="3" class="rubrik"><%=rs("namn")%></td>
</tr>
<tr>
<td width="120" align="center" valign="top"><img src="../bilder/prodbilder/<%=rs("bildkatalog")%>/<%=rs("bild_filnamn")%>" width="120"></td>
<td width="200" valign="top" class="brod"><%=rs("text")%><P>
</td>
</tr>
</table>

<%
rs.MoveNext
Loop

%>
</code>


Svara

Sv: Select och räknare

Postades av 2003-02-12 12:37:07 - Christofer Wallér

Jag får felmedelande på "rs.Open SQL, Connect, 1, 2"

Microsoft VBScript runtime error '800a01a8'

Object required: 'rs'

/roos/test dv/matain_reg.asp, line 44

Vad kan vara fel?


<code>

<%
distance = Request.Form("distance")
width = Request.Form("width")
ratio = distance/width
Response.Write(ratio)

Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/roos/test dv/test_db.mdb")

SQL = "SELECT Max(throw2)As iMax FROM prodTb"
Set rs = Connect.Execute(SQL)
If ratio < rs("iMax") then
Set rs = Nothing

SQL = "SELECT Top 4 FROM prodTb WHERE '" & ratio & "' >= throw1 AND '" & ratio & "' <= throw2"

Else
Response.Write "fel medelande"
End If

rs.Open SQL, Connect, 1, 2
Do while not rs.EOF
%>

</code>


Svara

Sv: Select och räknare

Postades av 2003-02-12 12:42:47 - Mattias Lind

Oops...sorry
ta bort Set rs = Nothing så ska det funka


Svara

Sv: Select och räknare

Postades av 2003-02-12 12:47:38 - Christofer Wallér

Tack för att du orkar hjälpa till!!!

Fick ett nytt felmeddelande när jag tog bort "Set rs = Nothing" , samma rad som förut.


ADODB.Recordset error '800a0e79'

Operation is not allowed when the object is open.

/roos/test dv/matain_reg.asp, line 46


Svara

Sv: Select och räknare

Postades av 2003-02-12 12:59:00 - Mattias Lind

Byt ut Set rs = Connect.Execute(SQL) mot rs.Open SQL, Connect, 1, 2


Svara

Sv: Select och räknare

Postades av 2003-02-12 13:03:10 - Christofer Wallér

Samma fel ändå, kan man ha två st öppna samtidigt?


Svara

Sv: Select och räknare

Postades av 2003-02-12 13:49:01 - Mattias Lind

Ursäkta jag är lite ringrostig...
Så här ska du göra:
Ha kvar Set rs = Connect.Execute(SQL)
Där det stod Set rs = Nothing förut skriver du rs.Close istället så borde det funka


Svara

Sv: Select och räknare

Postades av 2003-02-13 00:24:53 - Andreas Hillqvist

Om värdena ligger lagrade som text får du problem. Annars beror det på at dina parametrer är text. Då är '100'<'2'.
Testa med:
<code>
SQL = "SELECT * FROM prodTb WHERE " & ratio & " >= throw1 AND " & ratio & " <= throw2"
</code>
Om det är så att throw1 är text bör du ändra det till tal för att slippa strul. Annars kan du skriva:
<code>
SQL = "SELECT * FROM prodTb WHERE " & ratio & " >= CDbl(throw1) AND " & ratio & " <= CDbl(throw2)"
</code>
Men det är ineffektivt.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 808
27 960
271 761
478
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies