Avatar billede pretsmann Nybegynder
01. april 2005 - 00:40 Der er 9 kommentarer og
1 løsning

Søgning i database

Hej

Jeg forsøger at lave en søgeside hvor man kan søge på 4 felter men får konstant nedenstående fejl:

ODBC driver does not support the requested properties.

/viskvik_boliger.asp, line 108

Linie 108 er rs.Open strSQL, strDSN, 1

Er der en som kan løse dette for mig?

Jeg bruger nedenstående kode:

<%
Response.Buffer = True

session.LCID = 1030

'Åbner connection til databasen
Set Conn = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("..\database\feriebolig.mdb")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};"&DBPath

%>

<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If


' Henter værdien fra form
strKeyword1 = Trim(Request("Keyword1"))
strKeyword2 = CInt(Request("Keyword2"))
strKeyword3 = Trim(Request("Keyword3"))
strKeyword4 = Trim(Request("Keyword4"))

If Len(strKeyword1) = 0 Then
    ' Hvis der ikke er skrevet i feltet
    Response.Clear
    strKeyword1 = Replace(strKeyword1,"'","''")
Else
    ' Hvis der er skrevet i feltet
    strKeyword1 = Replace(strKeyword1,"'","''")
End If

If Len(strKeyword3) = 0 Then
    ' Hvis der ikke er skrevet i feltet
    Response.Clear
    strKeyword3 = Replace(strKeyword3,"'","''")
Else
    ' Hvis der er skrevet i feltet
    strKeyword3 = Replace(strKeyword3,"'","''")
End If

If Len(strKeyword4) = 0 Then
    ' Hvis der ikke er skrevet i feltet
    Response.Clear
    strKeyword4 = Replace(strKeyword4,"'","''")
Else
    ' Hvis der er skrevet i feltet
    strKeyword4 = Replace(strKeyword4,"'","''")
End If
%>

<html>



<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">


<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="800" id="AutoNumber1" height="100%" background="http://www.europeancottagerental.com/images/middlebg.gif">
    <tr>
      <td valign="top" colspan="3"><!--#include file="ssi/logobanner.asp"--></td>
    </tr>
    <tr>
      <td valign="top" colspan="3"><!--#include file="ssi/topbanner.asp"--></td>
    </tr>
    <tr>
      <td valign="top" colspan="3"><!--#include file="ssi/kviksoeg.asp"--></td>
    </tr>
    <tr>
      <td valign="top" height="100%" width="190"><!--#include file="ssi/menu.asp"--></td>
      <td valign="top" height="100%" width="610">
     
<%'----- Indhold start ----------------------------------------------------------------------------------------------------------------------------------------------%>

<%
' lav et recordsæt
Set rs = Server.CreateObject("ADODB.RecordSet")

' Opbygger en dynamisk SQL streng
strSQL = "SELECT * FROM beskrivelse WHERE"
strSQL = strSQL & " (brugerOmraade LIKE '%" & strKeyword1 & "%')"
strSQL = strSQL & " And brugerPersoner >= " & strKeyword2 & ""
strSQL = strSQL & " And (brugerHusdyr LIKE '%" & strKeyword3 & "%')"
strSQL = strSQL & " And (brugerPool LIKE '%" & strKeyword4 & "%') order by Dato desc"

' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("..\database\feriebolig.mdb")

rs.Open strSQL, strDSN, 1
%>

<%
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 8
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
  stripstate = "Side " & intPage & " af " & intPageCount & ""
 
  ' Hvis der er fundet poster på søgningen
%>
Avatar billede busschou Praktikant
01. april 2005 - 00:53 #1
hmm måske følgende kan virke
slet linjen med:
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("..\database\feriebolig.mdb")
og erstat med følgende:
------------
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open Server.MapPath("..\database\feriebolig.mdb")
rs.Open strSQL, conn, 1
Avatar billede busschou Praktikant
01. april 2005 - 00:56 #2
ellers måske følgende:
---------------------
set conn=Server.CreateObject("ADODB.Connection")
conn.Open Server.MapPath("..\database\feriebolig.mdb")
rs.Open strSQL, conn, 1
Avatar billede busschou Praktikant
01. april 2005 - 00:58 #3
hey vent... du har jo en connection aller øverst oppe...det så jeg ikke
Hvorfor laver du så denne linje ?:
---------------
' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("..\database\feriebolig.mdb")
---------------
Så burde du da kunne undvære den linje og nøjes med at rette din rs.open ville jeg mene - til:
rs.Open strSQL, Conn, 1
Avatar billede pretsmann Nybegynder
01. april 2005 - 01:02 #4
hmm ja...

Bruger jeg kun rs.Open strSQL, conn, 1 kommer samme fejl
Avatar billede busschou Praktikant
01. april 2005 - 01:13 #5
hmm ifølge microsoft betyder fejlmedelelsen at man forsøger at indsætte mere på et felt end det er muligt...fx hvis feltet er 20 langt og man indsætter noget af længden 21....men kan ikke lige lure hvorfor den så giver dig fejlen ved rs.open??
Avatar billede busschou Praktikant
01. april 2005 - 01:19 #6
har du mulighed for at udskrive din strSQL?
Avatar billede busschou Praktikant
01. april 2005 - 01:25 #7
af nysgerrighed.. når du skriver du henter fra en form:
------------------
strKeyword1 = Trim(Request("Keyword1"))
strKeyword2 = CInt(Request("Keyword2"))
strKeyword3 = Trim(Request("Keyword3"))
strKeyword4 = Trim(Request("Keyword4"))
---------------------------------------
burde det så ikke være
---------------------------------------
strKeyword1 = Trim(Request.Form("Keyword1"))
strKeyword2 = CInt(Request.Form("Keyword2"))
strKeyword3 = Trim(Request.Form("Keyword3"))
strKeyword4 = Trim(Request.Form("Keyword4"))
Avatar billede busschou Praktikant
01. april 2005 - 01:28 #8
af det jeg kan se fra dit link. Så består select boksen med regioner også af tal fra 10 og opefter.
Dvs Keyword1 er også et tal
Så spørgsmålet er måske om din sql fejler...det har jeg lidt på fornemmelsen
Men det vil en udskrift af den nemmere afsløre
Avatar billede kalp Novice
01. april 2005 - 08:22 #9
først og fremmest sikre dig at der er ikke er nogen felter i din database som er tomme! og så skal du sikre dig at de kolonner du vil søge i er skrevet korrekt.
Avatar billede pretsmann Nybegynder
01. april 2005 - 18:04 #10
hmm er løst pt - af en eller anden årsag ??
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