An example of the query is:
----------------------------------------------------------
Select 'Ranked' as Source, H.HotelName, H.TelNo, H.URL, H.Location,
H.HotelID, Rank
from (Hotels H Inner Join PrefHotels P on H.HotelID = P.HotelID)
Inner Join Locations L on P.LocID = L.LocID
where Rank is not null and Rank > 0 and L.LocID=2
Union
Select 'Unranked' as Source, H.HotelName, H.TelNo, H.URL, H.Location,
H.HotelID, Rank
from (Hotels H Inner Join PrefHotels P on H.HotelID = P.HotelID)
Inner Join Locations L on P.LocID = L.LocID
where (Rank is Null or Rank = 0) and L.LocID=2
Order By Source, Rank
----------------------------------------------------------
In Access, I get the following results
Ranked, Hotel1, [other fields], 1
Ranked, Hotel2, [other fields], 2
Ranked, Hotel3, [other fields], 3
Unranked, Hotel4, [other fields], 0
Unranked, Hotel4, [other fields], 0
Unranked, Hotel4, [other fields], 0
etc...
In my ASP Page I get these results:
Unranked, Hotel1, [other fields],
Unranked, Hotel2, [other fields],
Unranked, Hotel3, [other fields],
Unranked, Hotel4, [other fields],
Unranked, Hotel4, [other fields],
Unranked, Hotel4, [other fields],
etc...
I've imported the Access DB to SQL Server, and in Query Analyser and in the
ASP page I get the right result:
Ranked, Hotel1, [other fields], 1
Ranked, Hotel2, [other fields], 2
Ranked, Hotel3, [other fields], 3
Unranked, Hotel4, [other fields], 0
Unranked, Hotel4, [other fields], 0
Unranked, Hotel4, [other fields], 0
etc...
(ie Same as in Access)
I'm assuming that if Access itself doesnt object to the SQL, it must be
right. Therefore, the problem lies with ADO and the Access OLEDB drivers...
Any ideas?
Chris
--
Ray at home
Microsoft ASP MVP
"CJM" <cjm...@yahoo.co.uk> wrote in message
news:%234$MKx5%23DHA...@TK2MSFTNGP09.phx.gbl...
I'll spare you the full table structure, but in the debugging process, I
added a line like this straight after the oConn.Execute:
With rs
Response.Write .fields(0) & "," & .fields(1) & "," & ....... &
.fields(7)
End With
And obviously it came out as:
Unranked, Hotelname, ...other details... , <= No Rank
value
Chris
"Ray at <%=sLocation%> [MVP]" <Too many private support requests - Ask for
it if needed> wrote in message
news:%23y3Vn55%23DHA...@TK2MSFTNGP09.phx.gbl...
response.write rs.GetString(2,," | ", "<BR>")
Bob Barrows
--
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"
Select 'Ranked' as Source,Rank, H.HotelName, H.TelNo, H.URL, H.Location,
H.HotelID
from (Hotels H Inner Join PrefHotels P on H.HotelID = P.HotelID)
Inner Join Locations L on P.LocID = L.LocID
where Rank is not null and Rank > 0 and L.LocID=2
Union
Select 'Unranked' as Source,Rank, H.HotelName, H.TelNo, H.URL, H.Location,
H.HotelID
from (Hotels H Inner Join PrefHotels P on H.HotelID = P.HotelID)
Inner Join Locations L on P.LocID = L.LocID
where (Rank is Null or Rank = 0) and L.LocID=2
Order By Source, Rank
Ray at work
"CJM" <cjm...@yahoo.co.uk> wrote in message
news:ORl5PF6%23DHA...@tk2msftngp13.phx.gbl...
I seem to be getting the right response:
Ranked | Hotelname | TelNo | | Location | 4 | 1
etc...
So by this we can determine the recordset is correct... I'm really confused
now!
Here's the next code snippet:
------------------------------------------------------
Set rsInfo = oConn.Execute (sSQL, iAffected, adCmdText)
With rsInfo
%>
<thead>
<tr class="Hotel">
<th>Rank</th>
<th>Hotel</th>
<th>Location</th>
<th>Tel No.</th>
<th> </th>
<th> </th>
</tr>
</thead>
<%
Do while not .EOF
sURL =.Fields("URL")
If Left(sURL,7)<>"http://" Then
sURL = "http://" & sURL
End if
Response.Write "<tr><td>"
If .fields("Source") = "Ranked" Then
Response.Write .Fields("Rank") & "</td>"
Else
Response.Write " </td>"
End If
%>
<td><%=.Fields("HotelName")%> </td>
<td><%=.Fields("Location")%> </td>
<td><%=.Fields("Telno")%> </td>
<%
If sURL <>"" Then
Response.Write "<td><a href=" & sURL & "
target='_blank'>Website</a></td>"
Else
Response.Write "<td> </td>"
End If
%>
<td><a
href="hotels.asp?id=<%=.Fields("HotelID")%>">Details</a> </td>
</tr>
<%
.movenext
Loop
%>
etc....
-------------------------------------------------------
There doesnt seem to be anything to contentious in it.. but clearly there
must be something...
Chris
"Bob Barrows" <reb0...@NOyahoo.SPAMcom> wrote in message
news:Ov$0YU6%23DHA...@TK2MSFTNGP09.phx.gbl...
Bob, your code tallies with my previous output:
Unranked | Hotelname | TelNo | | Location | 6 | <= 'Unranked'
plus no Rank value
etc...
I tried the example you gave... no - it didnt work either.
Chris
"Ray at <%=sLocation%> [MVP]" <myfirstname at lane34 dot com> wrote in
message news:%23IHdFe6%23DH...@TK2MSFTNGP11.phx.gbl...
> If you rearrange the order in which you select the columns, does it
display
> differently? Eg.
>
[snip]
Are you getting any Ranked records?
You are using the same query in both databases?
So I don't have to recreate your database to test your code, do this:
rsInfo.Save <filename>, 1
and send me the file at reb0...@yahoo.com
Bob Barrows
Ray at work
"CJM" <cjm...@yahoo.co.uk> wrote in message
news:euPk5m6%23DHA...@TK2MSFTNGP10.phx.gbl...
> You are using the same query in both databases?
>
Exactly the same.
> So I don't have to recreate your database to test your code, do this:
>
> rsInfo.Save <filename>, 1
>
> and send me the file at reb0...@yahoo.com
>
Done.
Just out of interest, here are my two connection strings:
'Application("Connection") = "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=travel.mdb"
'Application("Connection") = "PROVIDER=SQLOLEDB;DATA
SOURCE=(local);UID=Username;PWD=password;DATABASE=Travel"
Cheers
Chris
I'm reluctant to say anything is for certain(!), but I would say that it
isnt an ASP/HTML issue, since the SQL Server version works. [I'm assuming
you are also following Bob's line of enquiry as well]. The data is coming
out wrong... I think.
I'm on MDAC 2.8.
Chris
"Ray at <%=sLocation%> [MVP]" <myfirstname at lane34 dot com> wrote in
message news:u1RLzw6%23DHA...@TK2MSFTNGP10.phx.gbl...
This is strange. I see zeroes in the unranked records. You've put zeroes in
some of them?
Looking at your query, I think I see a problem:
where Rank is not null and Rank > 0 and L.LocID=2
This should be
where Rank > 0 and L.LocID=2
If Rank is greater than 0, it is by definition, not null. I'm not sure this
is causing your problem but... It looks like the ranked records are
returning Nulls in the Rank column ... I'm not sure why - if the column
contains Null in those records, it should not return those records at all.
Try my suggested change and if it makes no difference, I guess I need to see
the data in your database. Can you zip it up and send it to me? If possible,
if you could send me a copy containing only the relevant tables and data,
that would be great.
Sorry, but I cannot reproduce your problem. This code produces the correct
results as far as I can see:
cn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & server.mappath("travel.mdb")
' cn.open "Provider=sqloledb;" & _
' "Data Source=xxxxxxx;" & _
' "Initial Catalog=test;" & _
' "User ID = xxxxx;" & _
' "Password = xxxxxx"
' set rs=server.createobject("adodb.recordset")
' cn.qryHotels rs
sSQL="Select 'Ranked' as Source, H.HotelName, H.TelNo, " & _
"H.URL,H.Location,H.HotelID, Rank from (Hotels H " & _
"Inner Join PrefHotels P on H.HotelID = P.HotelID) " & _
"Inner Join Locations L on P.LocID = L.LocID" & _
" where Rank > 0 and L.LocID=2 " & _
" UNION ALL Select 'Unranked' as Source, H.HotelName, " & _
"H.TelNo,H.URL, H.Location, H.HotelID, Rank from (Hotels H " & _
"Inner Join PrefHotels P on H.HotelID = P.HotelID) " & _
"Inner Join Locations L on P.LocID = L.LocID " & _
"where (Rank is Null or Rank = 0) and L.LocID=2 " & _
"ORDER BY Source, Rank;"
set rs=cn.Execute(sSQL,,1)
if rs.eof then
response.write "No records were returned"
else
Response.Write "<table border=1><tr><td>"
sHTML=rs.GetString(2,,"</td><td>", _
"</td></tr><tr><td>","NA")
sHTML = Left(sHTML, len(sHTML) - 8)
response.Write sHTML
response.write "</table>"
end if
rs.close: set rs=nothing
cn.close: set cn=nothing
I even imported the tables into my own sql server and verified that I got
the same results from both sources. I tried it both with the dynamic SQL
and using the corrected qryHotels saved query (creating a stored procedure
in SQL Server so I could test from both sources). I'm not sure why you want
to use dynamic SQL, but ...
I agree with Bob here. This problem seems strange. I am glad to test for
you too. If it is convenient for you, please feel free to send me your mdb
file and asp file. I will test it on my side. :) You can reach me by
removing online from my email address here.
Thanks very much.
Best regards,
Yanhong Huang
Microsoft Community Support
Get Secure! ¨C www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
I'm not sure what the problem was nor how I cured it - I've done so much
since yesterday.
I've re-installed MDAC, I've created a seperate ASP page & rebuilt the code
from scratch, and tweaked a few other things. Somewhere along the way was
the solution...
Thanks again for all your efforts.
Chris
Glad to hear it. :)
Have a good day!