カナダの顧客にさらにサービスを提供するため、一部の古い従来のASPページに表示されている日付をローカライズしようとしています。私たちはSetLocale()vbスクリプト関数を使い始めました。これは、ユーザー入力の日付を正しく処理することで成功しました。従来のASPのレコードセットから日付をローカライズ
しかし、私は、ADODB.Recordsetで返された日付がページのロケールを尊重すると予想していました。次のコードを考えてみましょう:
SetLocale 4105
'''
' Get a list of Employees
SQL = "SELECT Firstname, Lastname, HireDate FROM Employee"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open Application("ConnectionString")
Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = conn
cmd.CommandType = 1
cmd.CommandText = SQL
Set rst = Server.CreateObject("ADODB.Recordset")
rst.CursorLocation = 3
Set rst = cmd.Execute
ページに出HIREDATE列を書くとき、それはMM/DD/YYYY(当社のサーバーで使用される形式)としてレンダリングされます。
注意すべきいくつかのこと:
- 我々は(そう、サーバのローカリゼーション/地域を変更するオプションではありません)同じサーバー上で米国とカナダの顧客の両方にサービスを提供する必要があります。これは純粋なコードソリューションでなければなりません。
- タイプ名最初( "HireDate")が "Field"であることがわかりました。
このシナリオでSQLサーバーからの日付値をローカライズする適切な方法は何ですか?
は、あなたが明確にできます試してみてください、あなたは '4105'のSetLocale日付の形式にもかかわらず、期待されていないとことを言っていますか? BTWは 'TypeName(rst(" HireDate "))を使用します。値)'あなたはどうしますか? – AnthonyWJones