почему идентификатор GUID уникального идентификатора немного отличается - PullRequest
1 голос
/ 14 декабря 2010

У нас есть пользовательская таблица, для которой userId является уникальным типом идентификатора в базе данных Sybase. Значение, которое мы вводим, является значением GUID из нашего приложения C #. Когда мы смотрим на таблицу с помощью инструмента Sybase, значение отображается как 3835FD60-ACDE-4345-99AB-54263E9A07AE. Когда мы копируем / вставляем это поле в текстовый файл, оно отображается как 0x3835fd60acde434599ab54263e9a07ae. Когда мы получаем доступ к этому полю с помощью odbc (в python), генерируется строка (Hex) как 3835FD60ACDE434599AB54263E9A07AE.

Почему это показывает по-другому? спасибо

Ответы [ 2 ]

8 голосов
/ 14 декабря 2010

Guid - это просто набор байтов;это не строкаТак же, как и целое число 123, это не строка «123».Существуют различные способы отображения его в виде удобочитаемой строки.Вы можете использовать спецификатор формата с помощью Guid.ToString(string), чтобы выбрать формат: http://msdn.microsoft.com/en-us/library/97af8hh4.aspx

Проще: они выбрали разные форматыГид тот же.

1 голос
/ 14 декабря 2010

Обычно значения UUID / GUID хранятся в виде 128-битного целого числа, поэтому любой из форматов отображения действителен.Отформатированный дисплей, к которому мы привыкли, когда мы ссылаемся на UUID или GUID, является просто преобразованием этого 128-битного целого числа в удобный формат строки.

В Python вы должны иметь возможность передавать значениев класс uuid.UUID, чтобы получить объект UUID, который затем можно отформатировать обычным способом.

...