В некоторых ASP-приложениях бывает необходимо генерировать уникальный идентификатор (GUID - Global Unique IDentifier), сделать который можно несколькими способами, в том числе: используя БД или VB-компонент. Наиболее простой способ - использование БД (например, функции NewID() в SQL Server 7.0) не всегда подходит, поэтому в данной статье мы рассмотрим пошаговое создание VB-компонента, который позволит реализовать эту задачу при помощи Windows API. Преимущества этого метода будет в ледующем: * 1. Не требует выполнения запроса к БД
* 2. Не требует наличия SQL Server 7.
Итак, для создания компонента:
1. Поместите в секцию General Declarations следующий код:
Option Explicit Private Declare Function CoCreateGuid Lib "OLE32.DLL" _ (pGuid As GUID) As Long Private Declare Function StringFromGUID2 Lib "OLE32.DLL" _ (pGuid As GUID, ByVal PointerToString As Long, _ ByVal MaxLength As Long) As Long Private Const GUID_OK As Long = 0 Private myGUID As S tring Private Type GUID Guid1 As Long Guid2 As Integer Guid3 As Integer Guid4(0 To 7) As Byte End Type
2. Скопируйте данный код функции:
Public Function getGUIDKey() As String Const MAX_GUID_LENGTH As Long = 38 Dim udtGUID As GUID Dim strGUID As String Dim lngRetCode As Long lngRetCode = CoCreateGuid(udtGUID) If lngRetCode = GUID_OK Then strGUID = String(MAX_GUID_LENGTH, 0) StringFromGUID2 udtGUID, StrPtr(strGUID), _ MAX_GUID_LENGTH + 1 Else strGUID = "" End If getGUIDKey= strGUID End Function
3. Откомпилируйте файл проекта.
Обратите внимание, что в случае использования API Text Viewer (утилиты, входящей в Visual Studio) вы получите тип Public для API-функций, вместо Private, который использован в данном примере. Успешная компиляция завершает создание требуемого компонента и вы можете приступать к его использованию.