Avatar billede okay Nybegynder
19. juni 2001 - 10:23 Der er 20 kommentarer og
1 løsning

Alfabetisk Orden

Fejl:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in JOIN operation.

/ringtones.asp, line 61

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

Linje 61:
Set rs = Conn.Execute (str_sql2)

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

Og lidt af koden:
                        <%
str_alfa = request.querystring(\"alfa\")
bo_start = true
    do while len(str_alfa) > 0
        if bo_start = true then
        str_sql1 = \" left(ringtones,1) = \'\" & left(str_alfa, 1) & \"\'\"
        bo_start = false
        else
        str_sql1 = str_sql1 & \" or left(ringtones,1) = \'\" & left(str_alfa, 1) & \"\'\"
        end if
    str_alfa = right(str_alfa, len(str_alfa) - 1)
    loop

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"test.mdb\")
str_sql2 = \"SELECT * FROM ringtones and \" & str_sql1 & \" ORDER BY ringtones\"
Set rs = Conn.Execute (str_sql2)
%>

---------
Håber der er noget som kan hjælpe mig med fejlen :o) på forhånd tak for hjælpen
Avatar billede okay Nybegynder
19. juni 2001 - 10:23 #1
noget = nogen ;o)
Avatar billede stoffer Nybegynder
19. juni 2001 - 10:26 #2
der er jo åbenbart en fejl i str_sql1, som jeg ikke kan se her...
Avatar billede jakobandersen Nybegynder
19. juni 2001 - 10:26 #3
Hvad indeholder str_sql?
Avatar billede jakobandersen Nybegynder
19. juni 2001 - 10:27 #4
undekyld: det var str_alfa jeg mente, altså querystringen
Avatar billede sone Nybegynder
19. juni 2001 - 10:28 #5
Man kan ikke skrive:

  FROM tabel1 and tabel2

det hedder

  FROM tabel1, tabel2
Avatar billede okay Nybegynder
19. juni 2001 - 10:28 #6
nybegynder, hvad med mener du med strsql hvad den indholder ?? det er jo sådan set hele scripten !
Avatar billede nil.dk Nybegynder
19. juni 2001 - 10:29 #7
Prøv at give os indholdet af str_sql1
Avatar billede nil.dk Nybegynder
19. juni 2001 - 10:29 #8
ja, sone har ret...
Avatar billede okay Nybegynder
19. juni 2001 - 10:31 #9
Hele scripten her:
------------------
<table border=\"0\" width=\"700\" bgcolor=\"#000000\" cellspacing=\"1\" cellpadding=\"3\" align=\"center\">
  <tr>
    <td bgcolor=\"#FFFFFF\" valign=\"top\" colspan=\"2\">
      <div align=\"center\"> <a href=\"ringtones.asp?alfa=ABCD\">ABCD</a> - <a href=\"ringtones.asp?alfa=EFGH\">EFGH</a>
        - <a href=\"ringtones.asp?alfa=IJKL\">IJKL</a> - <a href=\"ringtones.asp?alfa=MNOP\">MNOP</a>
        - <a href=\"ringtones.asp?alfa=QRST\">QRST</a> - <a href=\"ringtones.asp?alfa=UVWX\">UVWX</a>
        - <a href=\"ringtones.asp?alfa=ZY%C6%C5%D80123456789\">ZY 1-9</a> </div>
    </td>
  </tr>
  <tr>
    <td bgcolor=\"#FFFFFF\" valign=\"top\" colspan=\"2\">
      <div align=\"center\">
                        <%
str_alfa = request.querystring(\"alfa\")
bo_start = true
    do while len(str_alfa) > 0
        if bo_start = true then
        str_sql1 = \" left(ringtones,1) = \'\" & left(str_alfa, 1) & \"\'\"
        bo_start = false
        else
        str_sql1 = str_sql1 & \" or left(ringtones,1) = \'\" & left(str_alfa, 1) & \"\'\"
        end if
    str_alfa = right(str_alfa, len(str_alfa) - 1)
    loop

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"zo27web.mdb\")
str_sql2 = \"SELECT * FROM ringtones and \" & str_sql1 & \" ORDER BY ringtones\"
Set rs = Conn.Execute (str_sql2)
%>
        <div align=\"center\">
          <%
if rs.EOF then
%>
          <span class=\"overskrift\">Ingen ringtones ! </span>
          <%
else
%>
          <table width=\"97%\" height=\"24\" cellspacing=\"2\">
            <tr bgcolor=\"#0099FF\">
              <td width=\"33%\"><font face=tahoma size=2 color=\"#FFFFFF\"><b>ringetone</b></font></td>
              <td width=\"18%\"><font face=tahoma size=2 color=\"#FFFFFF\"><b>Nokia</b></font></td>
              <td width=\"16%\"><font face=tahoma size=2 color=\"#FFFFFF\"><b>Ericsson</b></font></td>
              <td width=\"27%\"><font face=tahoma size=2 color=\"#FFFFFF\"><b>Siemens</b></font></td>
              <td width=\"6%\"><font face=tahoma size=2 color=\"#FFFFFF\"><b>Hits:</b></font></td>
            </tr>
<%
Do Until rs.EOF
%>
            <tr>
              <td width=\"33%\"><font face=tahoma size=2> <% = rs(\"ringetone\") %></font></td>
              <td width=\"18%\"><a href=\"nokia.asp?rid=<%= rs(\"id\") %>&sp=nokia\">nokia</a> </td>
              <td width=\"16%\"><a href=\"view_ringtones.asp?rid=<%= rs(\"id\") %>&sp=ericsson\">ericsson</a></td>
              <td width=\"27%\"><a href=\"view_ringtones.asp?rid=<%= rs(\"id\") %>&sp=siemens\">siemens</a></td>
              <td width=\"6%\"><% = rs(\"hits\") %></td>
            </tr>
            <%
rs.MoveNext
Loop
%>   
            <p></p>
          </table>
        </div>
        <% end if %>
      </div>
    </td>
  </tr>
</table>
Avatar billede okay Nybegynder
19. juni 2001 - 10:46 #10
ingen :(
Avatar billede okay Nybegynder
19. juni 2001 - 11:25 #11
JEG ER FANDME TRÆT AT DET LORT FUCKET UP ASP !!
Avatar billede jakobandersen Nybegynder
19. juni 2001 - 12:52 #12

Er du sikker på at denne ikke er tom:
request.querystring(\"alfa\")

Og måske hvis du forklarede hvad du ville?
Avatar billede okay Nybegynder
19. juni 2001 - 13:39 #13
jeg vil bare vise hvad der ligger i databasen, i alfabetisk orden !!

http://www.web-zone.dk/arabia/ringtones/ringtones.asp
Avatar billede jakobandersen Nybegynder
19. juni 2001 - 14:17 #14
Du har nu dette:

                    <%
str_alfa = request.querystring(\"alfa\")
bo_start = true
    do while len(str_alfa) > 0
        if bo_start = true then
        str_sql1 = \" left(ringtones,1) = \'\" & left(str_alfa, 1) & \"\'\"
        bo_start = false
        else
        str_sql1 = str_sql1 & \" or left(ringtones,1) = \'\" & left(str_alfa, 1) & \"\'\"
        end if
    str_alfa = right(str_alfa, len(str_alfa) - 1)
    loop

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"zo27web.mdb\")
str_sql2 = \"SELECT * FROM ringtones and \" & str_sql1 & \" ORDER BY ringtones\"
Set rs = Conn.Execute (str_sql2)
%>

Prøv med dette istedet:


<%
str_alfa = Request.QueryString.Item(\"alfa\")
Response.Write Len(str_alfa)
str_sql2 = \"SELECT * FROM ringtones WHERE\"
If Len(str_alfa) < 1 Then
str_alfa = \"ABCD\"
End if
  for i = 1 to Len(str_alfa)
    If i <> 1 Then
      str_sql2 = str_sql2 & \" OR\"
    End If
    str_sql2 = str_sql2 & \" ringtones LIKE \'\" &  Mid(Request.QueryString.Item(\"alfa\"),i,1) & \"%\'\"
next

str_sql2 = str_sql2 & \" ORDER BY ringtones\"
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"zo27web.mdb\")
Set rs = Conn.Execute (str_sql2)

%>
Avatar billede okay Nybegynder
19. juni 2001 - 14:54 #15
jeg får fejl her:
Set rs = Conn.Execute (str_sql2)

og du kan se hvad fejlen er her:
http://www.web-zone.dk/arabia/ringtones/ringtones.asp?alfa=EFGH
Avatar billede okay Nybegynder
19. juni 2001 - 14:56 #16
ups mener det virker !!!!!!!!!! :o)

men hvor kommer talt nr. 4 fra ?
Avatar billede jakobandersen Nybegynder
19. juni 2001 - 15:11 #17
Hov undskyld det var mig der fjumrede lidt fjern denne linie:
Response.Write Len(str_alfa)
Avatar billede jakobandersen Nybegynder
19. juni 2001 - 15:14 #18
PS: Jeg regner med at alle dine ringtones starter med stort ellers kan du lige bytte denne linie:

str_alfa = Request.QueryString.Item(\"alfa\")

Ud med

str_alfa = UCase(Request.QueryString.Item(\"alfa\")) & Lcase(Request.QueryString.Item(\"alfa\"))

Og denne:
str_alfa = \"ABCD\"
Med denne:
str_alfa = \"ABCDabcd\"

Så er den også case insensitiv


Avatar billede okay Nybegynder
19. juni 2001 - 16:51 #19
det virker...men så viser den ALT i databasen

tjek:
http://www.web-zone.dk/arabia/ringtones/ringtones.asp?alfa=A
Avatar billede jakobandersen Nybegynder
19. juni 2001 - 17:12 #20
Og du er sikker på du bruger denne kode:

<%
str_alfa = LCase(Request.QueryString.Item(\"alfa\")) & UCase(Request.QueryString.Item(\"alfa\"))
str_sql2 = \"SELECT * FROM ringtones WHERE\"
If Len(str_alfa) < 1 Then
str_alfa = \"ABCDabcd\"
End if
  for i = 1 to Len(str_alfa)
    If i <> 1 Then
      str_sql2 = str_sql2 & \" OR\"
    End If
    str_sql2 = str_sql2 & \" ringtones LIKE \'\" &  Mid(str_alfa,i,1) & \"%\'\"
next

str_sql2 = str_sql2 & \" ORDER BY ringtones\"

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"zo27web.mdb\")
Set rs = Conn.Execute (str_sql2)
%>
Avatar billede okay Nybegynder
20. juni 2001 - 15:46 #21
MEGET tak for hjælpen :o)
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