Avatar billede Slettet bruger
23. juni 2002 - 00:56 Der er 14 kommentarer og
1 løsning

Problemer med query af Access db

Hvorfor får jeg denne fejl ved query af en Access database:
Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "serial LIKE '001001%' LIMIT 0, 5".
/eshop/midte.asp, line 53


Dette er min query:

strQuery = "SELECT * FROM produkter WHERE serial LIKE '001001%' LIMIT 0, 5"

Dette er linie 53:
Set RS = Myconn.Execute(strQuery)
Avatar billede Slettet bruger
23. juni 2002 - 00:56 #1
Hvis jeg fjerne LIMIT 0,5 virker det iøvrigt fint :(
Avatar billede tobby Nybegynder
23. juni 2002 - 01:02 #2
kan du ikke bruge top?

strQuery = "SELECT TOP 5 * FROM produkter WHERE serial LIKE '001001%'"
Avatar billede Slettet bruger
23. juni 2002 - 01:03 #3
Nej, da jeg skal bruge det til noget paging.
Du ved side 1 2 3 4 osv.
Avatar billede tobby Nybegynder
23. juni 2002 - 01:07 #4
Så er der jo de indbyggede paging funktioner:

.pageCount
.absolutePage
.pageSize

- kender du dem?
Avatar billede tubber Juniormester
23. juni 2002 - 01:09 #5
>tobby

Hvor kan man læse mere om dem ?
Lydder interesant :O)
Avatar billede tobby Nybegynder
23. juni 2002 - 01:10 #6
Avatar billede Slettet bruger
23. juni 2002 - 01:11 #7
nope....er det i ASP eller Access?
Avatar billede tobby Nybegynder
23. juni 2002 - 01:13 #8
ASP - prøver lige at lave et eksempel...
Avatar billede eagleeye Praktikant
23. juni 2002 - 01:13 #9
LIMIT virker kun i MySQL det er ikke en Access SQL function, desvære, paging ville være en leg med Access hvis det var mulig men det er det ikke. Du kan kun bruge TOP X og så lave en WHERE id > xxx for det virker:

"SELECT TOP 5 FROM produkter WHERE serial LIKE '001001%'"

Eks på paging med Access:
http://activedeveloper.dk/aspdigital/kapitel2/paging.asp
Avatar billede Slettet bruger
23. juni 2002 - 01:14 #10
Kan det bruges med MySQL ? Jeg vil nemlig porte scriptet til MySQL når jeg er færdig med det.
Avatar billede Slettet bruger
23. juni 2002 - 01:15 #11
åh...så forstår jeg bedre hvorfor det ikke virker :)
Avatar billede eagleeye Praktikant
23. juni 2002 - 01:16 #12
Ja det virker både med Access og MySQL, det er ADODB.Recordset som understytter paging vha. pageCount, pageSize osv.
Avatar billede tobby Nybegynder
23. juni 2002 - 01:21 #13
Har lavet denne telefonliste - den er et meget godt eksempel selvom den er lidt stor.

<%
ANTALPERSONERPRSIDE = 25
   
OrderBy = Request.QueryString("OrderBy")

if OrderBy = "" then
Query = "SELECT * FROM Users ORDER BY Initialer"
else
Query = "SELECT * FROM Users ORDER BY " & OrderBy
end if

qrysidenummer = request("side")
action = request("action")
seekquery = request("query")
sidenummer = 1

if qrysidenummer = "" OR qrysidenummer = "0" then
sidenummer = 1
else
sidenummer = CInt(qrysidenummer)
end if

if action = "seek" then
Query = "SELECT * FROM Users WHERE Initialer LIKE '%" & seekquery & "%' OR Fornavn LIKE '%" & seekquery & "%' OR Efternavn LIKE '%" & seekquery & "%' OR Titel LIKE '%" & seekquery & "%' OR Direkte LIKE '%" & seekquery & "%' OR Mobil LIKE '%" & seekquery & "%' OR Mail LIKE '%" & seekquery & "%' OR Afdeling LIKE '%" & seekquery & "%' OR Lokation LIKE '%" & seekquery & "%' OR Fornavn + ' ' + Efternavn LIKE '%" & seekquery & "%' ORDER BY Initialer"
end if

Set Users = Server.CreateObject("ADODB.RecordSet")
Users.open Query, Connect, 1, 2

Users.pageSize = ANTALPERSONERPRSIDE

AntalSider = Users.pageCount
if sidenummer > AntalSider then
sidenummer = AntalSider
end if

if not Users.eof then
Users.absolutePage = sidenummer
end if

taeller = 0
%>
<table cellspacing=0 cellpadding=0 width=100%>
<tr>
<td height=2>
</td>
<td width=5>
</td>
</tr>
<tr>
<td width=5>
</td>
<td>
<font face=verdana size=4 color="#CCCCCC">Telefonliste</font>
</td>
</tr>
<tr>
<td height=10>
</td>
<td width=5>
</td>
</tr>
</table>
<HR>
<table cellspacing=0 cellpadding=0 width=100% height=539 bgcolor="#D6EDF6">
<tr>
<td width=100% height=100% valign=top>
<table cellspacing=0 cellpadding=0 width=100% height=100% background="images/tlf_bg.gif">
<tr>
<td width=100% height=100% valign=top colspan=3>
<table cellspacing=0 cellpadding=0 height=10>
<tr>
<td>
</td>
</tr>
</table>
<table cellspacing=0 cellpadding=0 width=100% class="Telefon">
<tr>
<td height=15 bgcolor="#EA7A16" width=7>
</td>
<td height=15 bgcolor="#38A1C9" width=4>
</td>
<td height=15 bgcolor="#38A1C9">
<a href="default.asp?Content=Telefon&OrderBy=Initialer"><font color=white><b>Initialer</b></font></a>
</td>
<td height=15 bgcolor="#38A1C9" width=3>
</td>
<td height=15 bgcolor="#38A1C9">
<a href="default.asp?Content=Telefon&OrderBy=Fornavn"><font color=white><b>Fornavn</b></font>
</td>
<td height=15 bgcolor="#38A1C9" width=3>
</td>
<td height=15 bgcolor="#38A1C9">
<a href="default.asp?Content=Telefon&OrderBy=Efternavn"><font color=white><b>Efternavn</b></font>
</td>
<td height=15 bgcolor="#38A1C9" width=3>
</td>
<td height=15 bgcolor="#38A1C9">
<a href="default.asp?Content=Telefon&OrderBy=Afdeling"><font color=white><b>Afdeling</b></font>
</td>
<td height=15 bgcolor="#38A1C9" width=3>
</td>
<td height=15 bgcolor="#38A1C9">
<font color=white><b>Direkte</b></font>
</td>
<td height=15 bgcolor="#38A1C9" width=3>
</td>
<td height=15 bgcolor="#38A1C9">
<font color=white><b>Mobil</b></font>
</td>
</tr>
<tr>
<td height=10>
</td>
</tr>
<% i = 1
do until Users.EOF or taeller = ANTALPERSONERPRSIDE
if i = 1 Then
%>
<tr>
<td height=15 bgcolor="#C3E2F1" width=7>
</td>
<td height=15 bgcolor="#C3E2F1" width=4>
</td>
<td height=15 bgcolor="#C3E2F1">
<a href="default.asp?Content=Profil&ID=<% = Users("ID")%>"><% = Users("Initialer") %></a>
</td>
<td height=15 bgcolor="#C3E2F1" width=3>
</td>
<td height=15 bgcolor="#C3E2F1">
<% = Users("Fornavn") %>
</td>
<td height=15 bgcolor="#C3E2F1" width=3>
</td>
<td height=15 bgcolor="#C3E2F1">
<% = Users("Efternavn") %>
</td>
<td height=15 bgcolor="#C3E2F1" width=3>
</td>
<td height=15 bgcolor="#C3E2F1">
<% = Users("Afdeling") %>
</td>
<td height=15 bgcolor="#C3E2F1" width=3>
</td>
<td height=15 bgcolor="#C3E2F1">
<% = Right(Users("Direkte"), 3) %>
</td>
<td height=15 bgcolor="#C3E2F1" width=3>
</td>
<td height=15 bgcolor="#C3E2F1">
<% = Right(Users("Mobil"), 3) %>
</td>
</tr>
<%
i = i + 1
taeller = taeller + 1
%>
<% else %>
<tr>
<td height=15 width=7>
</td>
<td height=15 width=4>
</td>
<td height=15>
<a href="default.asp?Content=Profil&ID=<% = Users("ID")%>"><% = Users("Initialer") %></a>
</td>
<td height=15 width=3>
</td>
<td height=15>
<% = Users("Fornavn") %>
</td>
<td height=15 width=3>
</td>
<td height=15>
<% = Users("Efternavn") %>
</td>
<td height=15 width=3>
</td>
<td height=15>
<% = Users("Afdeling") %>
</td>
<td height=15 width=3>
</td>
<td height=15>
<% = Right(Users("Direkte"), 3) %>
</td>
<td height=15 width=3>
</td>
<td height=15>
<% = Right(Users("Mobil") , 3) %>
</td>
</tr>
<%
i = 1
taeller = taeller + 1
%>
<% end if %>
<%
Users.MoveNext
loop
%>
</table>
</td>
</tr>
<tr>
<td height=15 bgcolor="#EA7A16" width=7>
</td>
<td height=15 bgcolor="#38A1C9" width=4>
</td>
<td bgcolor="#38A1C9" align=center>
<% if sidenummer > 1 then %><font color=white><a href="default.asp?Content=Telefon&side=<%= sidenummer - 1 %>&OrderBy=<%= sortering %>&amp;action=<%= action %>&amp;query=<%= seekquery %>"><font color=white><<</a><% end if %><font color=white> | <% for siderne = 1 to AntalSider %><% if not siderne = sidenummer then %><a href="default.asp?Content=Telefon&side=<%= siderne %>&OrderBy=<%= sortering %>&amp;action=<%= action %>&amp;query=<%= seekquery %>"><font color=white><%= siderne %></a><% else %><b><font color=white><%= siderne %></b><% end if %> | <% next %><% if sidenummer < AntalSider then %><a href="default.asp?Content=Telefon&side=<%= sidenummer + 1 %>&OrderBy=<%= sortering %>&amp;action=<%= action %>&amp;query=<%= seekquery %>"><font color=white>>></a><% end if %><% if action = "seek" then %><br><a href="default.asp&Content=Telefon">Tilbage</a><% end if %>
</td>
</tr>
<tr>
<td height=10 colspan=3>
</td>
</tr>
</table>
</td>
</tr>
</table>
Avatar billede eagleeye Praktikant
23. juni 2002 - 01:32 #14
Her er ud lille uddybelse af koden i det link jeg viste:


strSQL = "SELECT * FROM produkter WHERE serial LIKE '001001%'"

Så angiver du hvor mange du vil havde på hver side i linier:
    rs.PageSize = 10


Ud skrivning af søge resultet skal gøres inde i det loop der er:
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("LinkURL") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop

Du har sikkert et tilsvarne loop som du udskriver søgeresultatet i idag så du udskirve denne linie:
        Response.Write rs("LinkURL") & "<br>"
Men alle de linier du måtte hvade behov for...



Dette kode laver en liste i bunde med Gå til side 1 2 3 4 osv:
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next


Dette kode lave en links til forrige side via truk på <<:
Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If


Dette kode lave en links til næste side via tryk på >>:
If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If


Jeg håber det giver lidt ekstra hjælp ellers så bare spørg igen.
Avatar billede Slettet bruger
26. juni 2002 - 23:42 #15
tak for hjælpen. Jeg lavede det hele om til MySQL, da det alligvel er vejen frem her :)
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