![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GUID в поле таблицы DBF [dBase, FoxPro]
aga123 © (2004-03-02 10:00:00)Добрый день мастера!
Помогите пожалуйста, ибо я застрял вот на чем:
Мне нужно поместить значение GUID в поле DBF таблицы.
Функция CoCreateGUID() формирует значение типа TGUID.
Я перелопатил кучу примеров, но в них везде используется строковое представление получаемое из GUIDToString(), но длина получаемого результата 38.
- А как же получить 16 байтное значение из CoCreateGUID()?
- Каков тип получаемого результата? Какого типа должно быть поле в таблице FOXPRO(!), чтобы поместить туда полученное значение?
Огромное спасибо.
Romkin (2004-03-02 10:36:00) [21]А ты длину TGUID не смотрел? Это оно и есть, 16 байт.
aga123 (2004-03-02 10:33:00) [22]2Anatoly Podgoretsky
Да, 128-bit integer, но как его заполучить в поле?
Вот мои действия:
var
ID: TGUID;
S: string;
iId : Longint;
sId : String;
begin
// Получаем GUID
if CoCreateGuid(Id) = s_OK then
begin
// Строковое значение получаем так
s := GUIDToString(Id);
// Но как быть здесь???
// как получить этот 128-bit integer
// в переменную iid, ну это то же что и в поле
//sID := IntToStr(iId); /// ?????
end;
end;
Или я чего-то не понимаю и упускаю из виду очевидное?
Johnmen (2004-03-02 10:14:00) [23]Можно использовать
CreateClassIDдля получения 32 байтной строки, каждый б.которой отображает полбайта из каждых байт 4 интегеров (128 бит).
Anatoly Podgoretsky (2004-03-02 10:08:00) [24]- А как же получить 16 байтное значение из CoCreateGUID()?
Creates a GUID, a unique 128-bit integer