Changing Session.LCID in a hyperlink

R

Rob

Hi all,

Is it possible to change the Session.LCID in a hyperlink?
My problem is I'm calling a Date from a database to use as a querystring in
the hyperlink but I also need to display the date as output from the
hyperlink.
I need to have to querystring in Session.LCID = 1033 and the display date in
Session.LCID = 2057.

Coding :-

Session.LCID = 1033
<a href=""applybankholiday.asp?date=" & rshelpdesk("date") & """>" &
rshelpdesk("date") & "</a></font></td>")

Whereever I put Session.LCID = 2057 I either get errors saying its in the
wrong place or It displays false. Tried the following that gives the false.

Session.LCID = 1033
<a href=""applybankholiday.asp?date=" & rshelpdesk("date") & """>" &
Session.LCID = 2057 & rshelpdesk("date") & "</a></font></td>")


Any ideas?
Many thanks in advance,
Robert
 
A

Aaron Bertrand - MVP

Why are you using Session.LCID at all? How about formatting your date in a
standard, non-ambiguous format???
 
R

Rob

Could point, although not sure how to. The date is in uk format i.e.
dd/mm/yy in an access database. When I try and do a date range query in asp
it only works if I use the american format mm/dd/yy.
If you know of a way round this or how to do the formatting then I'd be
grateful.

Many thanks,
Robert
 
A

Aaron Bertrand - MVP

Could point, although not sure how to. The date is in uk format i.e.
dd/mm/yy in an access database.

NO! The date is not in any format inside the database. It is merely being
presented to you as such. To pass a standard, non-ambiguous date to Access,
which will never be misinterpreted, use #YYYY-MM-DD#.

http://www.aspfaq.com/2313
When I try and do a date range query in asp
it only works if I use the american format mm/dd/yy.

Again, if you are trying to find rows that are >= 20040101 and <= 20040131
try

WHERE dateColumn >= #2004-01-01# AND dateColumn < #2004-02-01#
 
R

roger

Rob said:
Could point, although not sure how to. The date is in uk format i.e.
dd/mm/yy in an access database. When I try and do a date range query in asp
it only works if I use the american format mm/dd/yy.

Do you mean when using "#" to delimit dates?

I think if you use #01/11/2004# syntax in MS SQL, this will always mean

11th day of January

irrespective of any locale settings.

<a href=""applybankholiday.asp?date=" & rshelpdesk("date") & """>" &
rshelpdesk("date") & "</a></font></td>")

How about...

dim d

d = rshelpdesk("date")

"<a href=""applybankholiday.asp?date=" & month(d) & "/" & day(d) & "/" &
year(d) & """>" &
d & "</a></font></td>"

However, I suspect nothing is foolproof for non-US date formats.
 
A

Aaron Bertrand [MVP]

I think if you use #01/11/2004# syntax in MS SQL, this will always mean
11th day of January

irrespective of any locale settings.

No, this is incorrect on at least two counts.

(1) SQL Server will barf on # as delimiters. Run this in Query Analyzer:



DECLARE @dt SMALLDATETIME
SET @dt = #01/11/2004#



You will get this:



Server: Msg 170, Level 15, State 1, Line 2
Line 2: Incorrect syntax near '#'.



(2) SQL Server will certainly *NOT* always interpret 01/11/2004 as January
11th. Even if you have a US locale and set up SQL Server as US English,
feel free to run this simple repro in Query Analyzer:



SET LANGUAGE FRENCH
GO

SELECT DATENAME(MONTH, '01/11/2004')

SET LANGUAGE ENGLISH
GO



Let us know if you get janvier or novembre!
 
R

roger

Aaron Bertrand said:
No, this is incorrect on at least two counts.

(1) SQL Server will barf on # as delimiters. Run this in Query Analyzer:

True... but we were discussing MSAccess.

In that context, "MS SQL" was meant to mean the MS version of SQL included
with Access.
 
A

Aaron Bertrand [MVP]

True... but we were discussing MSAccess.
In that context, "MS SQL" was meant to mean the MS version of SQL included
with Access.

I think in 99% of all cases, MS SQL will be interpreted as SQL Server...
even if the discussion had previously involved a different platform.

And even with Access, #mm/dd/yyyy# is STILL not a safe format to use. The
only truly safe format to use in Access is #YYYY-MM-DD#
 
B

Bob Barrows [MVP]

roger said:
In that context, "MS SQL" was meant to mean the MS version of SQL
included with Access.

For future reference, that version is called "JetSQL", due to its use with
the Jet database most commonly used with Access (remember: Access is not the
database. Access is a front-end tool for working with several databases,
including Jet and MSDE).

Also, "MS SQL" will always be interpreted as MS SQL Server. The version of
SQL used by MS SQL Server is called Transact-SQL (often shortened to T-SQL)

Bob Barrows
 

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,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top