この記事では、Active Server Pages (ASP) ページで使用するさまざまな形式の GUID を使用して、いくつかのページ例を作成する方法について説明します。 これらの値を使用して、データベース内または一意のデータ フィールドが必要な他の場所に一意のデータ エントリを作成できます。
元の製品バージョン: インターネット インフォメーション サービス
元の KB 番号: 320375
Note
これらの例ではセッション変数を使用しないため、これらの例は、セッション状態が無効になっている Web サーバーでも機能します。
単純な時間ベースの GUID を作成する
この例では、現在の年、月、日、時、分、秒を使用して、単純な 14 文字の時間ベースの GUID を作成します。 これにより、GUID に基づいてデータを並べ替えることができます。
スタートを選択し、Programsをポイントし、Accessoriesを選択し、Notepad を選択してメモ帳を開きます。
次の ASP コードをメモ帳に入力するか貼り付けます。
<%@LANGUAGE="VBSCRIPT"%> <HTML> <BODY> <% Response.Write "GUID = " & CreateGUID() Function CreateGUID() Dim tmpTemp tmpTemp = Right(String(4,48) & Year(Now()),4) tmpTemp = tmpTemp & Right(String(4,48) & Month(Now()),2) tmpTemp = tmpTemp & Right(String(4,48) & Day(Now()),2) tmpTemp = tmpTemp & Right(String(4,48) & Hour(Now()),2) tmpTemp = tmpTemp & Right(String(4,48) & Minute(Now()),2) tmpTemp = tmpTemp & Right(String(4,48) & Second(Now()),2) CreateGUID = tmpTemp End Function %> </BODY> </HTML>
ページを保存します。
- [ファイル] メニューの [保存] をクリックします。
- Web サイトのルート フォルダー (通常は既定の Web サイトの
C:\InetPub\Wwwroot
フォルダー) を見つけます。 - ファイルに GuidTest0.aspという名前を付けます。
- [保存] を選択します。
- [ファイル] メニューの [終了] を選択します。
Internet Explorer でページを見つけます。 GUID が表示されます。 ページを更新すると、GUID の増分が表示されます。
単純なタイム オフセット GUID を作成する
この例では、2000 年 1 月 1 日の午前 12 時からのオフセットを秒単位で使用して、20 文字の時間ベースの GUID を作成します。 これにより、GUID に基づいてデータを並べ替えることができます。また、ベースとして他の日付を使用するように更新することもできます。
スタートを選択し、Programsをポイントし、Accessoriesを選択し、Notepad を選択してメモ帳を開きます。
次の ASP コードをメモ帳に入力するか貼り付けます。
<%@LANGUAGE="VBSCRIPT"%> <HTML> <BODY> <% Response.Write "GUID = " & CreateGUID() Function CreateGUID() Dim tmpTemp1,tmpTemp2 tmpTemp1 = Right(String(15,48) & CStr(CLng(DateDiff("s","1/1/2000",Date()))), 15) tmpTemp2 = Right(String(5,48) & CStr(CLng(DateDiff("s","12:00:00 AM",Time()))), 5) CreateGUID = tmpTemp1 & tmpTemp2 End Function %> </BODY> </HTML>
ページを保存します。
- [ファイル] メニューの [保存] をクリックします。
- Web サイトのルート フォルダー (通常は既定の Web サイトの
C:\InetPub\Wwwroot
フォルダー) を見つけます。 - ファイルに GuidTest1.aspという名前を付けます。
- [保存] を選択します。
- [ファイル] メニューの [終了] を選択します。
Internet Explorer でページを見つけます。 GUID が表示されます。 ページを更新すると、GUID の増分が表示されます。
Note
この例では、関数が同じ秒に 2 回呼び出されない場合にのみ、一意性を許可します。 同じ秒に関数を 2 回呼び出すと、競合が発生します。 コードでの関数の使用方法によっては問題が発生しない可能性がありますが、 より一意のタイム オフセット GUID を作成 例を使用して、同じ秒に発生する一意の値を許可できます。
より一意のタイム オフセット GUID を作成する
この例では、 単純なタイム オフセット GUID を作成します 例では、時間ベースの GUID を作成しますが、長さは 25 文字です。 次の使用例は、2000 年 1 月 1 日の午前 12 時 00 分からのオフセットから 20 文字の値を秒単位で作成し、その末尾にさらに 5 つの乱数を追加します。 これにより、GUID に基づいてデータを並べ替えることができますが、一意性が大幅に向上します。 これは、ベースとして他の日付を使用するように更新できます。
スタートを選択し、Programsをポイントし、Accessoriesを選択し、Notepad を選択してメモ帳を開きます。
次の ASP コードをメモ帳に入力するか貼り付けます。
<%@LANGUAGE="VBSCRIPT"%> <HTML> <BODY> <% Response.Write "GUID = " & CreateGUID() Function CreateGUID() Randomize Timer Dim tmpTemp1,tmpTemp2,tmpTemp3 tmpTemp1 = Right(String(15,48) & CStr(CLng(DateDiff("s","1/1/2000",Date()))), 15) tmpTemp2 = Right(String(5,48) & CStr(CLng(DateDiff("s","12:00:00 AM",Time()))), 5) tmpTemp3 = Right(String(5,48) & CStr(Int(Rnd(1) * 100000)),5) CreateGUID = tmpTemp1 & tmpTemp2 & tmpTemp3 End Function %> </BODY> </HTML>
ページを保存します。
- [ファイル] メニューの [保存] をクリックします。
- Web サイトのルート フォルダー (通常は既定の Web サイトの
C:\InetPub\Wwwroot
フォルダー) を見つけます。 - ファイルに GuidTest2.asp名前を付けます。
- [保存] を選択します。
- [ファイル] メニューの [終了] を選択します。
Internet Explorer でページを見つけます。 GUID が表示されます。 ページを更新すると、GUID 増分の最初の 20 文字が表示され、最後の 5 文字はランダムになります。
Note
この例と 単純な時間オフセット GUID の作成 例は、 CreateGUID
関数への呼び出しの時間ベースのシリアル化のために作成されます。 時間に基づいてデータを並べ替える必要がない場合は、 単純なランダム GUID を作成 ランダム GUID を作成する例を使用できます。
単純なランダム GUID を作成する
スタートを選択し、Programsをポイントし、Accessoriesを選択し、Notepad を選択してメモ帳を開きます。
次の ASP コードをメモ帳に入力するか貼り付けます。
<%@LANGUAGE="VBSCRIPT"%> <HTML> <BODY> <% Response.Write "GUID = " & CreateGUID() Function CreateGUID() Randomize Timer Dim tmpCounter,tmpGUID Const strValid = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" For tmpCounter = 1 To 20 tmpGUID = tmpGUID & Mid(strValid, Int(Rnd(1) * Len(strValid)) + 1, 1) Next CreateGUID = tmpGUID End Function %> </BODY> </HTML>
ページを保存します。
- [ファイル] メニューの [保存] をクリックします。
- Web サイトのルート フォルダー (通常は既定の Web サイトの C:\InetPub\Wwwroot フォルダー) を見つけます。
- ファイルに GuidTest3.aspという名前を付けます。
- [保存] を選択します。
- [ファイル] メニューの [終了] を選択します。
Internet Explorer でページを見つけます。 20 文字のランダム GUID が表示されます。 ページを更新すると、値がランダムに変化します。
Note
この例では、固定長ランダム GUID を作成します。 可変長 GUID を作成するには、 可変長ランダム GUID を作成する 例を使用します。
可変長ランダム GUID を作成する
スタートを選択し、Programsをポイントし、Accessoriesを選択し、Notepad を選択してメモ帳を開きます。
次の ASP コードをメモ帳に入力するか貼り付けます。
<%@LANGUAGE="VBSCRIPT"%> <HTML> <BODY> <% Response.Write "<P>GUID = " & CreateGUID(10) Response.Write "<P>GUID = " & CreateGUID(25) Response.Write "<P>GUID = " & CreateGUID(50) Function CreateGUID(tmpLength) Randomize Timer Dim tmpCounter,tmpGUID Const strValid = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" For tmpCounter = 1 To tmpLength tmpGUID = tmpGUID & Mid(strValid, Int(Rnd(1) * Len(strValid)) + 1, 1) Next CreateGUID = tmpGUID End Function %> </BODY> </HTML>
ページを保存します。
- [ファイル] メニューの [保存] をクリックします。
- Web サイトのルート フォルダー (通常は既定の Web サイトの C:\InetPub\Wwwroot フォルダー) を見つけます。
- ファイルに GuidTest4.aspという名前を付けます。
- [保存] を選択します。
- [ファイル] メニューの [終了] を選択します。
Internet Explorer でページを見つけます。 10 文字、25 文字、50 文字のランダム GUID が表示されます。 ページを更新すると、値がランダムに変化します。
Note
この例と 単純なランダム GUID を作成します 例では、両方とも連結されたランダム文字の文字列を作成します。 Windows スタイルのランダムな GUID を作成する例この機能を展開して、Windows GUID のように書式設定された GUID を作成します。
Windows スタイルのランダム GUID を作成する
Windows は主に、コンポーネントやその他のオブジェクトのクラス ID を登録するときに GUID を使用しますが、GUID は何でも使用できます。 Windows GUID は、書式設定された 16 進文字の長い文字列です。つまり、0 ~ 9 の数字と A から F の文字が使用されます (Microsoft Access には、同じ形式の組み込みのレプリケーション ID もあります)。この例では、 に似たコードを使用して、可変長ランダム GUID を作成 サンプル コードを使用して、Windows GUID のような GUID を作成する方法を示します。
スタートを選択し、Programsをポイントし、Accessoriesを選択し、Notepad を選択してメモ帳を開きます。
次の ASP コードをメモ帳に入力するか貼り付けます。
<%@LANGUAGE="VBSCRIPT"%> <HTML> <BODY> <% Response.Write "<P>GUID = " & CreateWindowsGUID() Function CreateWindowsGUID() CreateWindowsGUID = CreateGUID(8) & "-" & _ CreateGUID(4) & "-" & _ CreateGUID(4) & "-" & _ CreateGUID(4) & "-" & _ CreateGUID(12) End Function Function CreateGUID(tmpLength) Randomize Timer Dim tmpCounter,tmpGUID Const strValid = "0123456789ABCDEF" For tmpCounter = 1 To tmpLength tmpGUID = tmpGUID & Mid(strValid, Int(Rnd(1) * Len(strValid)) + 1, 1) Next CreateGUID = tmpGUID End Function %> </BODY> </HTML>
ページを保存します。
- [ファイル] メニューの [保存] をクリックします。
- Web サイトのルート フォルダー (通常は既定の Web サイトの
C:\InetPub\Wwwroot
フォルダー) を見つけます。 - ファイルに GuidTest5.asp名前を付けます。
- [保存] を選択します。
- [ファイル] メニューの [終了] を選択します。
Internet Explorer でページを見つけます。 Windows GUID のように書式設定されたランダムな GUID が表示されます。 ページを更新すると、値がランダムに変化します。
より強力なウィンドウ スタイルのランダム GUID を作成する
Windows GUID は文字ごとに 16 進数を使用するため、GUID の文字ごとに 16 個の値を使用できます。 値を展開してアルファベット全体を含める場合、GUID の文字ごとに 36 個の値を指定できます。 この例では、 の関数を使用して、可変長のランダム GUID を作成します 例では、Windows GUID と同じ形式で GUID を作成します。
スタートを選択し、Programsをポイントし、Accessoriesを選択し、Notepad を選択してメモ帳を開きます。
次の ASP コードをメモ帳に入力するか貼り付けます。
<%@LANGUAGE="VBSCRIPT"%> <HTML> <BODY> <% Response.Write "<P>GUID = " & CreateWindowsGUID() Function CreateWindowsGUID() CreateWindowsGUID = CreateGUID(8) & "-" & _ CreateGUID(4) & "-" & _ CreateGUID(4) & "-" & _ CreateGUID(4) & "-" & _ CreateGUID(12) End Function Function CreateGUID(tmpLength) Randomize Timer Dim tmpCounter,tmpGUID Const strValid = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" For tmpCounter = 1 To tmpLength tmpGUID = tmpGUID & Mid(strValid, Int(Rnd(1) * Len(strValid)) + 1, 1) Next CreateGUID = tmpGUID End Function %> </BODY> </HTML>
ページを保存します。
- [ファイル] メニューの [保存] をクリックします。
- Web サイトのルート フォルダー (通常は既定の Web サイトの
C:\InetPub\Wwwroot
フォルダー) を見つけます。 - ファイルに GuidTest6.asp名前を付けます。
- [保存] を選択します。
- [ファイル] メニューの [終了] を選択します。
Internet Explorer でページを見つけます。 Windows GUID のように書式設定されたランダムな GUID が表示されます。 ページを更新すると、値がランダムに変化します。