VERY odd classic ASP problem on 2005 upgrade

VERY odd classic ASP problem on 2005 upgrade

am 28.03.2007 00:42:58 von Elliott Roberts

I'm seeing a VERY odd issue after moving my data from a SQL2000 DB to
a SQL2005 DB. About half the time, when I request a value (using
ors.fields("pagedata") for instance), I get nothing returned. I know
there's data in the field, and I'm on the correct RS object.

Sometimes, when I move the call to another portion of the page, I get
the data (while on the same RS object). I need to move to a new server
running 2005, and folks are starting to chomp at me. Help! I've never
seen anything vaguely like this.

Thanks,

Elliott Roberts

Re: VERY odd classic ASP problem on 2005 upgrade

am 28.03.2007 01:06:26 von reb01501

Elliott Roberts wrote:
> I'm seeing a VERY odd issue after moving my data from a SQL2000 DB to
> a SQL2005 DB. About half the time, when I request a value (using
> ors.fields("pagedata") for instance), I get nothing returned. I know
> there's data in the field, and I'm on the correct RS object.
>
> Sometimes, when I move the call to another portion of the page, I get
> the data (while on the same RS object). I need to move to a new server
> running 2005, and folks are starting to chomp at me. Help! I've never
> seen anything vaguely like this.
>
I don't know how you expect us to help you. Show us some code to allow us to
reproduce your problem.

As a guess, could it be this old ODBC bug?
http://www.aspfaq.com/show.asp?id=2188

--
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: VERY odd classic ASP problem on 2005 upgrade

am 28.03.2007 14:57:03 von Elliott Roberts

On Mar 27, 6:06 pm, "Bob Barrows [MVP]"
wrote:
> I don't know how you expect us to help you. Show us some code to allow us to
> reproduce your problem.
>
> As a guess, could it be this old ODBC bug?http://www.aspfaq.com/show.asp?id=2188
>

Sorry for the lack of detail - I thought it might be a common
weirdness with an upgrade like this. Guess not. The code ran like a
Swiss watch against a 2000 server (and still does). It is very long,
and well, not all that well written. Sadly, I need this to work
against 2005 without re-coding the whole thing. Here's a sample that
contains relevant parts:

connectionstring = "Driver={SQL Native
Client};Server=x.x.x.x;Database=distweb;Uid=xxx;Pwd=xxx;MARS _Connection=yes;"
Set oC = Server.CreateObject("ADODB.Connection")
oC.Open connectionstring
Set oRS = Server.CreateObject("ADODB.Recordset")
sqlStr = "SELECT * FROM pagedata WHERE pageid = " & int(pageid) & "
and pid = " & int(pid) & " AND folder = '" & application("varfolder")
& "' order by rank, id"
set oRS = oC.execute(sqlSTR)

' If there are no paragraphs created, then display an under
construction notice
IF ors.EOF THEN
Response.Write("

This section is not yet complete. CENTER>
")
ELSE
' Loop through the available paragraphs
DO WHILE not ORS.EOF

' If the pagedata is a header, print it...else, go to the paragraph
section
IF ors.fields("header") = true THEN
BuildHeader(ors.fields("pagedata"))
ELSE
'Image
IF ors.fields("image") <> "" THEN
%>
" ALIGN=<
%=ors.fields("imagealign")%>>


<%
END IF
'Check to see if this is a title
vt = ors.fields("title")
IF vt <> "" THEN
%>
<%=vt%>

<%
END IF
Response.write(ors.fields("pagedata") & "

")
if ors.fields("imgcap") <> "" then
%>
"> %>">
<%=ors.fields("imgcap")
%>

<%
end if
END IF 'IF header

ors.MoveNext
loop
END IF

oRS.Close
set oRS = nothing
oC.close
Set oC = nothing

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

Thanks for any help.

Elliott

Re: VERY odd classic ASP problem on 2005 upgrade

am 28.03.2007 15:25:23 von reb01501

Elliott Roberts wrote:
> On Mar 27, 6:06 pm, "Bob Barrows [MVP]"
> wrote:
>> I don't know how you expect us to help you. Show us some code to
>> allow us to reproduce your problem.
>>
>> As a guess, could it be this old ODBC
>> bug?http://www.aspfaq.com/show.asp?id=2188
>>
>
> Sorry for the lack of detail - I thought it might be a common
> weirdness with an upgrade like this. Guess not. The code ran like a
> Swiss watch against a 2000 server (and still does). It is very long,
> and well, not all that well written. Sadly, I need this to work
> against 2005 without re-coding the whole thing. Here's a sample that
> contains relevant parts:
>
> connectionstring = "Driver={SQL Native
>
Client};Server=x.x.x.x;Database=distweb;Uid=xxx;Pwd=xxx;MARS _Connection=
yes;"

OK, so you are using ODBC. Your first step should be to switch to the
native OLE DB provider (from www.connectionstrings.com):
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase; Uid=myUserna
me;Pwd=myPassword;


> Set oC = Server.CreateObject("ADODB.Connection")
> oC.Open connectionstring
> Set oRS = Server.CreateObject("ADODB.Recordset")
> sqlStr = "SELECT * FROM pagedata WHERE pageid = " & int(pageid) & "

From the link I provided, you should see that it's a bad idea to use
selstar ... especially when you are planning to use only a few of the
columns from the table. do yourself (and whoever has to maintain this
code after you) a favor and replace the * with the list of columns you
are retrieving from the table ... even if you want all the columns that
are currently in the table. Who's to say that somebody isn't going to
come along at some point and add another column to the table?

Without details such as column datatypes, I have to stick with my
original guess. Again, see http://www.aspfaq.com/show.asp?id=2188

--
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.