Toon posts:

[ASP/MSSQL2000] fout afvangenbinnen fulltext query

Pagina: 1
Acties:

Verwijderd

Topicstarter
Met behulp van een fulltext-catalogs heb ik een zoekmachine gemaakt. Dat werkt allemaal leuk. Daarnaast heb ik als taal , de nederlandse taal ingesteld zodat verboden en noise woorden niet gebruikt kunnen worden binnen een zoekactie. Het probleem is zodra je bijvoorbeeld "de" of "het" invoert wordt er een fout melding gegenereert in SQL query analyzer en geeftie aan "A clause of the query contained only ignored words." Prima, maar dat wil ik dus niet... Ik wil die fout afvangen zodat ik voor de gebruiker in duidelijke taal kan weergeven wat er fout gegaan is. Ik controleer op een lege recordset, maar er wordt dus geen recordset teruggegeven. Van te voren de verboden/noise woorden filteren is een optie, maar is een beetje zonde van het werk, dat doet MSSQL al voor mij, ik wil dus alleen de fout afvangen op een of andere manier.

SQL:
1
2
3
4
5
6
SELECT * FROM CONTAINSTABLE(WebParts, *, 'en') 
    AS W_A INNER JOIN WebParts AS W_B 
        ON W_A.[key] = W_B.ID 
        AND W_B.Caption NOT LIKE '%navigatie%' 
        AND W_B.Caption NOT LIKE '%banner%' 
    ORDER BY RANK DESC


De query is opzich weinig schokkends. Verder wordt alles verwerkt met behulp van ASP, maar dat is waarschijnlijk wel duidelijk... Ik hoop dat iemand mij verder kan helpen!

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Wordt er geen exceptie gegooid die je kan opvangen ?
Aan de hand van die exception kan je dan een mooiere foutmelding geven.

Trouwens, full-text zoeken, doe je dat niet met FREETEXT() oid?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Als ik wist hoe en of je een exceptie kan afvangen was ik hier niet gekomen :) Dat is nml het probleem, ik kan daar helemaal niks over vinden.

Verder nog een document die verschillende manier toepast van fulltext-search mocht je er geïntresseerd in zijn: klikje

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Verwijderd schreef op 12 september 2003 @ 10:51:
Als ik wist hoe en of je een exceptie kan afvangen was ik hier niet gekomen :) Dat is nml het probleem, ik kan daar helemaal niks over vinden.
Mjah, hoe je exceptions afvangt in ASP weet ik ook niet precies.
Ik vermoed dat je het met het
code:
1
On Error Goto error_handler

oid zult moeten doen.

https://fgheysels.github.io/


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21-08 22:17

TeeDee

CQB 241

* TeeDee goede bui heeft vandaag:

Standaard ASP / SQL handling:

In de include file:
ASP:
1
2
ConnString  = "PROVIDER=SQLOLEDB; DATA SOURCE=dbserver; 
Initial Catalog=dbnaam;User ID=username; password=password;"


Error trapping op diezelfde ConnString

In de include file:
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub MyErrorHandler(oDBConn, sSQL)
  Response.Write "An error has occurred.<BR>"
  Response.write "SQLstate=" & oDBConn.Errors(0).sqlstate & "<BR>"
  Response.write "Description=" & oDBConn.Errors(0).Description  & "<BR>"
  Response.write "NativeError=" & oDBConn.Errors(0).NativeError & "<BR>"
  Response.write "SQL=" & sSQL & "<BR>"
  Response.Write "Please telephone the Web Support Team on tel no xxxx"
  On Error Resume Next
  oDBConn.Close
  Set oDBConn = nothing
  On Error goto 0
  Response.End
End Sub


In de ASP page:
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim oDBConn, rsTest, sSQL
 Set oDBConn = Server.CreateObject("ADODB.Connection")
 oDBConn.Open ConnString
 
 sSQL = "SELECT Field1, Field2 " &_
        "FROM MyTable "
 
 On error resume next              'catch ODBC/SQL errors
 Set rsTest = oDBConn.Execute(sSQL)
 On error goto 0                   'error handling back on
 
                                   ' now check for ODBC errors
 IF oDBConn.Errors.Count <> 0 then
     Call MyErrorHandler(oDBConn, sSQL)  ' pass db connection
 Else
     '.... process results
     '.... etc
 End If
 
 rsTest.Close
 oDBConn.Close
 Set rsTest = Nothing     ' Free up memory
 Set oDBConn = Nothing


Komt uit mijn "personal" code library. Keer gevonden op Internet. Werkt als een zonnetje. Je zal hem uiteraard wel zelf moeten tweaken. Maar dit is het idee daarin in ieder geval.

[ Voor 21% gewijzigd door TeeDee op 12-09-2003 11:02 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Qua idee zit het er erg goed uit... zal idd ff moeten tweaken, maar dat zal geen probleem moeten zijn (hoewel ik de minst prettige ontwikkel omgeving gebruik...)

/me Sooterd is blij dat TeeDee een goede bui heeft!!!

Verwijderd

Topicstarter
/me Sooterd heeft even gerommeld en kan niets anders zeggen dan: bedankt!!!
Pagina: 1