Error 80004005

B

Bryan Tang

I built an ASP to search the content in index server. It is ok if search in
English. Whenever I search in Chinese, I will got the following error
message,

CreateRecordset ?u?~ '80004005'

£gLak?u¢DXao?u?~

/search/query.asp, |C203



Any one know what's going wrong. The following is the code of my ASP,



<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "html.dtd">
<HTML>
<HEAD>
<%
' ********** INSTRUCTIONS FOR QUICK CUSTOMIZATION **********
'
' This form is set up for easy customization. It allows you to modify the
' page logo, the page background, the page title and simple query
' parameters by modifying a few files and form variables. The procedures
' to do this are explained below.
'
'
' *** Modifying the Form Logo:

' The logo for the form is named is2logo.gif. To change the page logo,
simply
' name your logo is2logo.gif and place in the same directory as this form.
If
' your logo is not a GIF file, or you don't want to copy it, change the
following
' line so that the logo variable contains the URL to your logo.

FormLogo = "C & P Logo.jpg"

'
' *** Modifying the Form's background pattern.

' You can use either a background pattern or a background color for your
' form. If you want to use a background pattern, store the file with the
name
' is2bkgnd.gif in the same directory as this file and remove the remark
character
' the single quote character) from the line below. Then put the remark
character on
' the second line below.
'
' If you want to use a different background color than white, simply edit
the
' bgcolor line below, replacing white with your color choice.

' FormBG = "background = " & chr(34) & "is2bkgnd.gif" & chr(34)
FormBG = "bgcolor = " & chr(34) & "#FFFFFF" & chr(34)


' *** Modifying the Form's Title Text.

' The Form's title text is set on the following line.

%>
<TITLE>C&P Document Search</TITLE>
<%
'
' *** Modifying the Form's Search Scope.
'
' The form will search from the root of your web server's namespace and
below
' (deep from "/" ). To search a subset of your server, for example, maybe
just
' a PressReleases directory, modify the scope variable below to list the
' virtual path to search. The search will start at the directory you specify
' and include all sub-directories.

' FormScope = "/"

'
' *** Modifying the Number of Returned Query Results.
'
' You can set the number of query results returned on a single page
' using the variable below.

PageSize = 10
'
' You can set the total number of query results returned using the
' variable below.

MaxResults = 300

'
' *** Setting the Locale.
'
' The following line sets the locale used for queries. In most cases, this
' should match the locale of the server. You can set the locale below.

SiteLocale = "ZH-TW"

'
' *** Enable saving active searches in session variables
'
' The following line enables using session state to save multi-page queries
' and avoid re-executing them when the user presses the Next Page button.
' This should be set FALSE if sessions are disabled using
AspAllowSessionState.

UseSessions = FALSE

' ********** END QUICK CUSTOMIZATION SECTIONS ***********
%>

<META NAME="DESCRIPTION" CONTENT="Sample ASP query form for Indexing
Service">
<META NAME="AUTHOR" CONTENT="Indexing Service Team">
<META NAME="KEYWORDS" CONTENT="query, content, hit">
<META NAME="SUBJECT" CONTENT="sample form">
<META NAME="MS.CATEGORY" CONTENT="Internet">
<META NAME="MS.LOCALE" CONTENT="ZH-TW">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
charset=Windows-1252">
<%
' Set Initial Conditions
NewQuery = FALSE
UseSavedQuery = FALSE
SearchString = ""

QueryForm = Request.ServerVariables("PATH_INFO")

' Did the user press a SUBMIT button to execute the form? If so get the form
variables.
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
SearchString = Request.Form("SearchString")
if Request.Form("Action") = "Go" then
NewQuery = TRUE
RankBase=1000
NextPageNumber = -1
end if
end if
if Request.ServerVariables("REQUEST_METHOD") = "GET" then
SearchString = Request.QueryString("qu")
' FormScope = Request.QueryString("sc")
RankBase = Request.QueryString("RankBase")
if Request.QueryString("pg") <> "" then
NextPageNumber = Request.QueryString("pg")
UseSavedQuery = UseSessions
NewQuery = not UseSessions
else
NewQuery = SearchString <> ""
NextPageNumber = -1
end if
end if
%>
</HEAD>

<BODY OnLoad="Init()" LANGUAGE="JSCRIPT" <%=FormBG%>>

<TABLE>
<TR><TD><IMG SRC ="<%=FormLogo%>" border=0 VALIGN=MIDDLE
ALIGN=LEFT></TD></TR>
<TR><TD><H2>C&P Document Search</H2></TD></TR>
</TABLE>

<p>

<FORM NAME=QueryForm ACTION="<%=QueryForm%>" METHOD=POST>
<TABLE WIDTH=500>
<TR>
<TD>Enter your query below:</TD>
</TR>
<TR>
<TD><INPUT TYPE="TEXT" NAME="SearchString" SIZE="65"
MAXLENGTH="100" VALUE="<%=SearchString%>" TABINDEX=1></TD>
<TD><BUTTON TYPE=SUBMIT NAME="Action">Go</BUTTON></TD>
</TR>
</TABLE>
<TABLE WIDTH=500>
<TR>
<TD ALIGN="RIGHT"><A HREF="ixtiphlp.htm">Tips for
searching</A></TD>
</TR>
</TABLE>
</FORM>

<BR>

<%
if NewQuery then
if UseSessions then
set Session("Query") = nothing
set Session("Recordset") = nothing
end if
NextRecordNumber = 1

' Remove any leading and ending quotes from SearchString

SrchStrLen = len(SearchString)

if left(SearchString, 1) = chr(34) then
SrchStrLen = SrchStrLen-1
SearchString = right(SearchString, SrchStrLen)
end if

if right(SearchString, 1) = chr(34) then
SrchStrLen = SrchStrLen-1
SearchString = left(SearchString, SrchStrLen)
end if

' CompSearch = "{freetext} " & SearchString & "{/freetext}"
CompSearch = SearchString

set Q = Server.CreateObject("ixsso.Query")
set Util = Server.CreateObject("ixsso.Util")

Q.Catalog = "web"
' Q.Catalog = "DOC"
Q.Query = CompSearch
Q.SortBy = "rank[d]"
Q.Columns = "DocTitle, vpath, filename, size, write, characterization,
rank"

if MaxResults <> -1 then
Q.MaxRecords = MaxResults
end if

' if FormScope <> "\" then
' Util.AddScopeToQuery Q, FormScope, "deep"
' end if

if SiteLocale<>"" then
Q.LocaleID = Util.ISOToLocaleID(SiteLocale)
end if

set RS = Q.CreateRecordSet("nonsequential")

RS.PageSize = PageSize
RS.CacheSize = PageSize
ActiveQuery = TRUE

elseif UseSavedQuery then
if IsObject( Session("Query") ) And IsObject( Session("RecordSet") )
then
set Q = Session("Query")
set RS = Session("RecordSet")

ActiveQuery = TRUE
else
Response.Write "ERROR - No saved query"
end if
end if

if ActiveQuery then
if RS.RecordCount <> -1 and NextPageNumber <> -1 then
RS.AbsolutePage = NextPageNumber
NextRecordNumber = RS.AbsolutePosition
end if

if not RS.EOF then
%>

<p>
<HR WIDTH=80% ALIGN=center SIZE=3>
<p>

<%
LastRecordOnPage = NextRecordNumber + RS.PageSize - 1
CurrentPage = RS.AbsolutePage
if RS.RecordCount <> -1 AND RS.RecordCount < LastRecordOnPage then
LastRecordOnPage = RS.RecordCount
end if

Response.Write "Documents " & NextRecordNumber & " to " &
LastRecordOnPage
if RS.RecordCount <> -1 then
Response.Write " of " & RS.RecordCount
end if
Response.Write " matching the query " & chr(34) & "<I>"
Response.Write Server.HTMLEncode( SearchString ) & "</I>" & chr(34)
& ".<P>"
%>

<% if Not RS.EOF and NextRecordNumber <= LastRecordOnPage then%>
<table border=0>
<colgroup width=105>
<% end if %>

<% Do While Not RS.EOF and NextRecordNumber <= LastRecordOnPage

' This is the detail portion for Title, Abstract, URL, Size, and
' Modification Date.

' If there is a title, display it, otherwise display the filename.
%>
<p>
<%
' Graphically indicate rank of document with list of stars (*'s).

if NextRecordNumber = 1 then
RankBase=RS("rank")
end if

if RankBase>1000 then
RankBase=1000
elseif RankBase<1 then
RankBase=1
end if

NormRank = RS("rank")/RankBase

if NormRank > 0.80 then
stars = "rankbtn5.gif"
elseif NormRank > 0.60 then
stars = "rankbtn4.gif"
elseif NormRank > 0.40 then
stars = "rankbtn3.gif"
elseif NormRank >.20 then
stars = "rankbtn2.gif"
else
stars = "rankbtn1.gif"
end if
%>
<tr class="RecordTitle">
<td align="right" valign=top class="RecordTitle">
<%= NextRecordNumber%>.
</td>
<td><b class="RecordTitle">
<%if VarType(RS("DocTitle")) = 1 or RS("DocTitle") = ""
then%>
<a
href="javascript:NAF('http://<%=Request.ServerVariables("SERVER_NAME")%><%=RS("vpath")%>','<%=SearchString%>')"
class="RecordTitle"><%= Server.HTMLEncode( RS("filename") )%></a>
<%else%>
<a
href="javascript:NAF('http://<%=Request.ServerVariables("SERVER_NAME")%><%=RS("vpath")%>','<%=SearchString%>')"
class="RecordTitle"><%= Server.HTMLEncode(RS("DocTitle"))%></a>
<%end if%>
</b></td>
</tr>

<tr>
<td valign=top align=left>
<IMG SRC="<%=stars%>">
<br>
<%
' Construct the URL for hit highlighting
WebHitsQuery = "CiWebHitsFile=" & Server.URLEncode( RS("vpath") )
WebHitsQuery = WebHitsQuery & "&CiRestriction=" &
Server.URLEncode( Q.Query )
WebHitsQuery = WebHitsQuery & "&CiUserParam3=" & QueryForm
WebHitsQuery = WebHitsQuery & "&CiLocale=" & Util.LocaleIDToISO(
Q.LocaleID )
%>

</td>
<td valign=top>
<%if VarType(RS("characterization")) = 8 and
RS("characterization") <> "" then%>
<b><i>Abstract: </i></b>
<%= Server.HTMLEncode(RS("characterization"))%>
<%end if%>
<p>
<i class="RecordStats"><a
href="javascript:NAF('http://<%=Request.ServerVariables("SERVER_NAME")%><%=RS("vpath")%>','<%=SearchString%>')"
class="RecordStats"
style="color:blue;">http://<%=Request("server_name")%><%=RS("vpath")%></a>
<br><%if RS("size") = "" then%>(size and time
unknown)<%else%>size <%=RS("size")%> bytes - <%=RS("write")%> GMT<%end
if%></i>
</td>
</tr>
<tr>
</tr>
<%
RS.MoveNext
NextRecordNumber = NextRecordNumber+1
Loop
%>

</table>
<P><BR>

<%
else ' NOT RS.EOF
if NextRecordNumber = 1 then
Response.Write "No documents matched the query<P>"
else
Response.Write "No more documents in the query<P>"
end if

end if ' NOT RS.EOF


if NOT Q.OutOfDate then
' If the index is current, display the fact %>
<P>
<I><B>The index is up to date.</B></I><BR>
<%end if


if Q.QueryIncomplete then
' If the query was not executed because it needed to enumerate to
' resolve the query instead of using the index, but AllowEnumeration
' was FALSE, let the user know
%>
<P>
<I><B>The query is too expensive to complete.</B></I><BR>
<%end if


if Q.QueryTimedOut then
' If the query took too long to execute (for example, if too much work
' was required to resolve the query), let the user know %>
<P>
<I><B>The query took too long to complete.</B></I><BR>
<%end if%>

<TABLE>

<%
' This is the "previous" button.
' This retrieves the previous page of documents for the query.

SaveQuery = FALSE
if CurrentPage > 1 and RS.RecordCount <> -1 then %>
<td align=left>
<form action="<%=QueryForm%>" method="get">
<INPUT TYPE="HIDDEN" NAME="qu" VALUE="<%=SearchString%>">
<!--
' <INPUT TYPE="HIDDEN" NAME="sc" VALUE="<%=FormScope%>">
-->
<INPUT TYPE="HIDDEN" NAME="pg" VALUE="<%=CurrentPage-1%>" >
<INPUT TYPE="HIDDEN" NAME="RankBase" VALUE="<%=RankBase%>">
<input type="submit" value="Previous <%=RS.PageSize%>
documents">
</form>
</td>
<%SaveQuery = UseSessions%>
<%end if%>

<%
' This is the "next" button for unsorted queries.
' This retrieves the next page of documents for the query.

if Not RS.EOF then%>
<td align=right>
<form action="<%=QueryForm%>" method="get">
<INPUT TYPE="HIDDEN" NAME="qu" VALUE="<%=SearchString%>">
<!--
<INPUT TYPE="HIDDEN" NAME="sc" VALUE="<%=FormScope%>">
-->
<INPUT TYPE="HIDDEN" NAME="pg" VALUE="<%=CurrentPage+1%>">
<INPUT TYPE="HIDDEN" NAME="RankBase" VALUE="<%=RankBase%>">
<%
NextString = "Next "
if RS.RecordCount <> -1 then
NextSet = (RS.RecordCount - NextRecordNumber) + 1
if NextSet > RS.PageSize then
NextSet = RS.PageSize
end if
NextString = NextString & NextSet & " documents"
else
NextString = NextString & " page of documents"
end if
%>
<input type="submit" value="<%=NextString%>">
</form>
</td>
<%SaveQuery = UseSessions%>
<%end if%>

</TABLE>

<% ' Display the page number

if RS.PageCount <> 0 then
Response.Write "Page " & CurrentPage
if RS.PageCount <> -1 then
Response.Write " of " & RS.PageCount
end if
end if
%>
<%
' If either of the previous or back buttons were displayed, save the
query
' and the recordset in session variables.
if SaveQuery then
set Session("Query") = Q
set Session("RecordSet") = RS
else
RS.close
Set RS = Nothing
Set Q = Nothing
set Util = nothing
if UseSessions then
set Session("Query") = Nothing
set Session("RecordSet") = Nothing
end if
end if
%>
<% end if %>
<BR>

</BODY>

<SCRIPT LANGUAGE=JSCRIPT>
function Init()
{
QueryForm.SearchString.focus();
}

function msieversion()
{
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE");
if (msie>0)
return parseInt(ua.substring(msie+5, ua.indexOf(".", msie)));
else
return 0;
}

function NAF(szUrl, szQuery)
{
if (msieversion() >= 5)
window.external.NavigateAndFind(szUrl, szQuery, "_main");
else
window.navigate(szUrl, target="_main");
}
</SCRIPT>

</HTML>
 
R

Ray Costanzo [MVP]

Instead of posting hundreds of lines of HTML, can you just post the line
with the error and a few relevant lines surrounding it if necessary? And
what is the error? Can you translate it into English?

Ray at work
 
B

Bryan Tang

Thanks Ray. The error message you see is exactly what I got. It is not
Chinese text but some garbage. I think the following codes are where the
problem occur,

** This part I already set the locale to "Traditional Chinese" **

'
' *** Setting the Locale.
'
' The following line sets the locale used for queries. In most cases,
this
' should match the locale of the server. You can set the locale below.

SiteLocale = "ZH-TW"


&&

** This part create a new recordset object **

<%
if NewQuery then
if UseSessions then
set Session("Query") = nothing
set Session("Recordset") = nothing
end if
NextRecordNumber = 1

' Remove any leading and ending quotes from SearchString

SrchStrLen = len(SearchString)

if left(SearchString, 1) = chr(34) then
SrchStrLen = SrchStrLen-1
SearchString = right(SearchString, SrchStrLen)
end if

if right(SearchString, 1) = chr(34) then
SrchStrLen = SrchStrLen-1
SearchString = left(SearchString, SrchStrLen)
end if

CompSearch = SearchString

set Q = Server.CreateObject("ixsso.Query")
set Util = Server.CreateObject("ixsso.Util")

Q.Catalog = "web"
Q.Query = CompSearch
Q.SortBy = "rank[d]"
Q.Columns = "DocTitle, vpath, filename, size, write,
characterization, rank"

if MaxResults <> -1 then
Q.MaxRecords = MaxResults
end if

if SiteLocale<>"" then
Q.LocaleID = Util.ISOToLocaleID(SiteLocale)
end if

set RS = Q.CreateRecordSet("nonsequential")

RS.PageSize = PageSize
RS.CacheSize = PageSize
ActiveQuery = TRUE

elseif UseSavedQuery then
if IsObject( Session("Query") ) And IsObject( Session("RecordSet") )
then
set Q = Session("Query")
set RS = Session("RecordSet")

ActiveQuery = TRUE
else
Response.Write "ERROR - No saved query"
end if
end if

if ActiveQuery then
if RS.RecordCount <> -1 and NextPageNumber <> -1 then
RS.AbsolutePage = NextPageNumber
NextRecordNumber = RS.AbsolutePosition
end if

if not RS.EOF then
%>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,521
Members
44,995
Latest member
PinupduzSap

Latest Threads

Top