How can display the sql before the error occurs?

How can display the sql before the error occurs?

am 29.11.2007 23:50:01 von Big Moxy

I'm getting this error on my asp/access page. It's a sql error
triggered by Recordset1.open sql,conn,1,1. The sql is constructed from
user input on a search page.

ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are
in conflict with one another.

The problem I'm having is getting a Response.Write(sql) to actually
display the sql code before the open statement.

Can someone please help me display my generated sql code?

Thank you!

Re: How can display the sql before the error occurs?

am 30.11.2007 00:26:07 von Anthony Jones

"Big Moxy" wrote in message
news:5d976162-57a4-4548-99c5-1924ad41e414@d4g2000prg.googleg roups.com...
> I'm getting this error on my asp/access page. It's a sql error
> triggered by Recordset1.open sql,conn,1,1. The sql is constructed from
> user input on a search page.
>
> ADODB.Recordset error '800a0bb9'
> Arguments are of the wrong type, are out of acceptable range, or are
> in conflict with one another.
>
> The problem I'm having is getting a Response.Write(sql) to actually
> display the sql code before the open statement.
>
> Can someone please help me display my generated sql code?
>


Try using a Response.End directly after the Response.Write sql

--
Anthony Jones - MVP ASP/ASP.NET

Re: How can display the sql before the error occurs?

am 30.11.2007 00:43:17 von Big Moxy

On Nov 29, 3:26 pm, "Anthony Jones" wrote:
> "Big Moxy" wrote in message
>
> news:5d976162-57a4-4548-99c5-1924ad41e414@d4g2000prg.googleg roups.com...
>
> > I'm getting this error on my asp/access page. It's a sql error
> > triggered by Recordset1.open sql,conn,1,1. The sql is constructed from
> > user input on a search page.
>
> > ADODB.Recordset error '800a0bb9'
> > Arguments are of the wrong type, are out of acceptable range, or are
> > in conflict with one another.
>
> > The problem I'm having is getting a Response.Write(sql) to actually
> > display the sql code before the open statement.
>
> > Can someone please help me display my generated sql code?
>
> Try using a Response.End directly after the Response.Write sql
>
> --
> Anthony Jones - MVP ASP/ASP.NET

I'm sorry to say that it doesn't stop at the Response.End(). The code
continues until the error occurs.

Re: How can display the sql before the error occurs?

am 30.11.2007 01:05:29 von reb01501

Big Moxy wrote:
> On Nov 29, 3:26 pm, "Anthony Jones" wrote:
>> "Big Moxy" wrote in message
>>
>> news:5d976162-57a4-4548-99c5-1924ad41e414@d4g2000prg.googleg roups.com...
>>
>>> I'm getting this error on my asp/access page. It's a sql error
>>> triggered by Recordset1.open sql,conn,1,1. The sql is constructed
>>> from user input on a search page.
>>
>>> ADODB.Recordset error '800a0bb9'
>>> Arguments are of the wrong type, are out of acceptable range, or are
>>> in conflict with one another.
>>
>>> The problem I'm having is getting a Response.Write(sql) to actually
>>> display the sql code before the open statement.

The error you are getting is unlikely to be caused by the sql string you are
using. It is more likely to be a problem with the arguments used for the
Open statement.

>>
>>> Can someone please help me display my generated sql code?
>>
>> Try using a Response.End directly after the Response.Write sql
>>

> I'm sorry to say that it doesn't stop at the Response.End(). The code
> continues until the error occurs.

And you have the Response.Write statement BEFORE the Open statement? You are
wasting your time and ours by failing to show us the code that's giving you
the problem.

--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Re: How can display the sql before the error occurs?

am 30.11.2007 01:30:29 von Big Moxy

On Nov 29, 4:05 pm, "Bob Barrows [MVP]"
wrote:
> Big Moxy wrote:
> > On Nov 29, 3:26 pm, "Anthony Jones" wrote:
> >> "Big Moxy" wrote in message
>
> >>news:5d976162-57a4-4548-99c5-1924ad41e414@d4g2000prg.googl egroups.com...
>
> >>> I'm getting this error on my asp/access page. It's a sql error
> >>> triggered by Recordset1.open sql,conn,1,1. The sql is constructed
> >>> from user input on a search page.
>
> >>> ADODB.Recordset error '800a0bb9'
> >>> Arguments are of the wrong type, are out of acceptable range, or are
> >>> in conflict with one another.
>
> >>> The problem I'm having is getting a Response.Write(sql) to actually
> >>> display the sql code before the open statement.
>
> The error you are getting is unlikely to be caused by the sql string you are
> using. It is more likely to be a problem with the arguments used for the
> Open statement.
>
>
>
> >>> Can someone please help me display my generated sql code?
>
> >> Try using a Response.End directly after the Response.Write sql
>
> > I'm sorry to say that it doesn't stop at the Response.End(). The code
> > continues until the error occurs.
>
> And you have the Response.Write statement BEFORE the Open statement? You are
> wasting your time and ours by failing to show us the code that's giving you
> the problem.
>
> --
> Microsoft MVP - ASP/ASP.NET
> Please reply to the newsgroup. This email account is my spam trap so I
> don't check it very often. If you must reply off-line, then remove the
> "NO SPAM"- Hide quoted text -
>
> - Show quoted text -

This is the code that builds the SQL.

Response.Write(Request.ServerVariables("REQUEST_METHOD") & "
")
If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
If Request.Form("ctlSearchField") <> "" Then
Dim strWhere, strQuote
If (IsNumeric(ctlSearchFor) AND ctlSearchOption <> "LIKE" AND
ctlSearchOption <> "HAS") Then
strQuote = ""
Else
strQuote = "'"
End If
Response.Write("strQuote=" & strQuote & "x
")

If ctlSearchOption = "LIKE" Then
ctlSearchFor = ctrlSearchFor & "*"
End If
If ctlSearchOption = "HAS" Then
ctlSearchOption = "LIKE"
ctlSearchFor = "*" & ctrlSearchFor & "*"
End If
Response.Write("ctlSearchOption=" & ctlSearchOption & "+
")
Response.Write("ctlSearchFor=" & ctlSearchFor & "+
")
If ctlSearchField = "*" Then
strWhere = "ID " & ctlSearchOption & " " & strQuote & ctlSearchFor &
strQuote & " OR " &_
"[Equipment Description] " & ctlSearchOption & " " & strQuote &
ctlSearchFor & strQuote & " OR " &_
"Day " & ctlSearchOption & " " & strQuote & ctlSearchFor &
strQuote & " OR " &_
"Week " & ctlSearchOption & " " & strQuote & ctlSearchFor &
strQuote & " OR " &_
"Month " & ctlSearchOption & " " & strQuote & ctlSearchFor &
strQuote & " "
Else
strWhere = "WHERE " & ctlSearchField & " " & ctlSearchOption & " " &
strQuote & ctlSearchFor & strQuote & " "
End If
Response.Write("strWhere=" & strWhere & "+
")
Response.End()
sql = "SELECT * FROM [" & tables(tableID) & "] " &_
"WHERE " & strWhere &_
"ORDER BY ID ASC"
Response.Write(sql & "
")
Response.End()

End If
Else
sql = "SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC"
Response.Write(sql & "
")
End If

Recordset1.open sql,conn,1,1

If not Recordset1.eof then
Recordset1_total = Recordset1.recordcount
Else
Recordset1_total = 0
End if

Recordset1_numRows = Recordset1_total

This is the seach form:

target="_self">


















Search for:





id="ctlSearchFor" size="40">
  type="submit" value="Show all">

Re: How can display the sql before the error occurs?

am 30.11.2007 01:47:38 von reb01501

Big Moxy wrote:
> sql = "SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC"
> Response.Write(sql & "
")
> End If

You need the Response.End right here, immediately before the Open statement

>
> Recordset1.open sql,conn,1,1
>
> If not Recordset1.eof then
> Recordset1_total = Recordset1.recordcount
> Else
> Recordset1_total = 0
> End if
>
> Recordset1_numRows = Recordset1_total
>

--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Re: How can display the sql before the error occurs?

am 30.11.2007 02:00:45 von Big Moxy

On Nov 29, 4:47 pm, "Bob Barrows [MVP]"
wrote:
> Big Moxy wrote:
> > sql = "SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC"
> > Response.Write(sql & "
")
> > End If
>
> You need the Response.End right here, immediately before the Open statement
>
>
>
> > Recordset1.open sql,conn,1,1
>
> > If not Recordset1.eof then
> > Recordset1_total = Recordset1.recordcount
> > Else
> > Recordset1_total = 0
> > End if
>
> > Recordset1_numRows = Recordset1_total
>
> --
> Microsoft MVP - ASP/ASP.NET
> Please reply to the newsgroup. This email account is my spam trap so I
> don't check it very often. If you must reply off-line, then remove the
> "NO SPAM"

I placed it where I did because the initial page display uses sql =
"SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC" which works
just fine. I will never get the search option if the Response.End is
placed where you suggest.

Re: How can display the sql before the error occurs?

am 30.11.2007 02:10:13 von reb01501

Big Moxy wrote:

>
> I placed it where I did because the initial page display uses sql =
> "SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC" which works
> just fine. I will never get the search option if the Response.End is
> placed where you suggest.

I don't get you. if you want to troubleshoot the sql statement, then you
have to print it out before it is executed ...
--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Re: How can display the sql before the error occurs?

am 30.11.2007 02:36:18 von Big Moxy

On Nov 29, 5:10 pm, "Bob Barrows [MVP]"
wrote:
> Big Moxy wrote:
>
> > I placed it where I did because the initial page display uses sql =
> > "SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC" which works
> > just fine. I will never get the search option if the Response.End is
> > placed where you suggest.
>
> I don't get you. if you want to troubleshoot the sql statement, then you
> have to print it out before it is executed ...
> --
> Microsoft MVP - ASP/ASP.NET
> Please reply to the newsgroup. This email account is my spam trap so I
> don't check it very often. If you must reply off-line, then remove the
> "NO SPAM"

Perhaps you are not understanding the sequence of events.

The page with the problem serves two purposes.

1. It displays a tabular list of data
2. Underneath the list is a search option -

-Select a field to search on
-Select the type of search
-Click the search button

The initial display is generated by an HTTP GET so the initial SQL is
"SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC" and that
ALWAYS works. The problem is with the SQL generated from the search
form.

A search results display is generated by an HTTP POST of the search
form so it follows the IF "POST" Then logic.

There is ONE open statement for both page entry points. Besides what
is wrong is conditionally executing the Response.End? Having the
Response.End inside of an If statement should work. The concept works
in other languages I have coded in. Is VBscript an exception?

If Then
build sql statement
response.write(sql)
response.end
Else
build sql statement
End If
Recordset.open...

So as you can see if I place the Response.End after the End If and
before the Open I will never get a display.

Re: How can display the sql before the error occurs?

am 30.11.2007 02:42:33 von Big Moxy

On Nov 29, 5:36 pm, Big Moxy wrote:
> On Nov 29, 5:10 pm, "Bob Barrows [MVP]"
> wrote:
>
> > Big Moxy wrote:
>
> > > I placed it where I did because the initial page display uses sql =
> > > "SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC" which works
> > > just fine. I will never get the search option if the Response.End is
> > > placed where you suggest.
>
> > I don't get you. if you want to troubleshoot the sql statement, then you
> > have to print it out before it is executed ...
> > --
> > Microsoft MVP - ASP/ASP.NET
> > Please reply to the newsgroup. This email account is my spam trap so I
> > don't check it very often. If you must reply off-line, then remove the
> > "NO SPAM"
>
> Perhaps you are not understanding the sequence of events.
>
> The page with the problem serves two purposes.
>
> 1. It displays a tabular list of data
> 2. Underneath the list is a search option -
>
> -Select a field to search on
> -Select the type of search
> -Click the search button
>
> The initial display is generated by an HTTP GET so the initial SQL is
> "SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC" and that
> ALWAYS works. The problem is with the SQL generated from the search
> form.
>
> A search results display is generated by an HTTP POST of the search
> form so it follows the IF "POST" Then logic.
>
> There is ONE open statement for both page entry points. Besides what
> is wrong is conditionally executing the Response.End? Having the
> Response.End inside of an If statement should work. The concept works
> in other languages I have coded in. Is VBscript an exception?
>
> If Then
> build sql statement
> response.write(sql)
> response.end
> Else
> build sql statement
> End If
> Recordset.open...
>
> So as you can see if I place the Response.End after the End If and
> before the Open I will never get a display.

NEVER MIND. I WILL SIMPLY SPLIT THE PAGES AND TROUBLESHOOT THE SEARCH
RESULTS SEPARATELY.

Re: How can display the sql before the error occurs?

am 30.11.2007 02:46:01 von reb01501

Big Moxy wrote:
> On Nov 29, 5:10 pm, "Bob Barrows [MVP]"
> wrote:
>> Big Moxy wrote:
>>
>>> I placed it where I did because the initial page display uses sql =
>>> "SELECT * FROM [" & tables(tableID) & "] ORDER BY ID ASC" which
>>> works just fine. I will never get the search option if the
>>> Response.End is placed where you suggest.
>>
>> I don't get you. if you want to troubleshoot the sql statement, then
>> you have to print it out before it is executed ...
>> --
>> Microsoft MVP - ASP/ASP.NET
>> Please reply to the newsgroup. This email account is my spam trap so
>> I don't check it very often. If you must reply off-line, then remove
>> the "NO SPAM"
>
> Perhaps you are not understanding the sequence of events.

It's irrelevant. Your goal at this point is not to make the page run to
completion. Your goal at this point is to discover what the sql string
contains (at least, that was the goal you stated in your opening post).
Nothing else that happens after the sql string is built is relevant until
you determine that your sql statement is correct. Once you have determined
that the sql statement is what you expect it to be, then you can start
worrying about getting the rest of the page to run.

--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Re: How can display the sql before the error occurs?

am 30.11.2007 02:56:40 von reb01501

Big Moxy wrote:

> So as you can see if I place the Response.End after the End If and
> before the Open I will never get a display.

Oh damn - my previous repoly was bollocks.
I need to look at this again tomorrow

--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Re: How can display the sql before the error occurs?

am 30.11.2007 02:58:13 von reb01501

Big Moxy wrote:
> NEVER MIND. I WILL SIMPLY SPLIT THE PAGES AND TROUBLESHOOT THE SEARCH
> RESULTS SEPARATELY.

Oh shoot - you got to this too quick. You're right - my previous reply was
crap - I need to shut the computer off ... now.
--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Re: How can display the sql before the error occurs?

am 30.11.2007 07:59:04 von Peter Byers

Just a thought
Why not use "On Error" to control the Response.Write and Response.End

ByTheWay, you used "Response.End()" - I dont us the brackets for this
statement

Pete (Northolt UK)

Big Moxy wrote:

> I'm getting this error on my asp/access page. It's a sql error
> triggered by Recordset1.open sql,conn,1,1. The sql is constructed from
> user input on a search page.
>
> ADODB.Recordset error '800a0bb9'
> Arguments are of the wrong type, are out of acceptable range, or are
> in conflict with one another.
>
> The problem I'm having is getting a Response.Write(sql) to actually
> display the sql code before the open statement.
>
> Can someone please help me display my generated sql code?
>
> Thank you!

Re: How can display the sql before the error occurs?

am 30.11.2007 14:18:59 von reb01501

Big Moxy wrote:

>
> NEVER MIND. I WILL SIMPLY SPLIT THE PAGES AND TROUBLESHOOT THE SEARCH
> RESULTS SEPARATELY.

Sorry about yesterday. Are you still here? Do you still need help with
this?

--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.