Форум: "Базы";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Внизuniqueidentifier и UpdateSQL Найти похожие ветки
← →
Gandrey (2003-12-08 16:22) [0]Проблема с полями типа uniqueidentifier при работе с MSSQL посредством BDE
когда запрашиваются поля типа uniqueidentifier , то Query воспринимает их как поля типа Tbyte.
Модификацию таблиц я проивожу посредством UpdateSQL, например
Update table1 set
Field1=:Field1
where id=:old_id
на сервер в результате летит (смотрел в профайлере) что то вроде такого
Update table1 set
Field1=12
where id=0x9ac01d9356c9844da03803fc6e8a9cd6
а по идее должно выглядеть так
Update table1 set
Field1=12
where id="{931DC09A-C956-4D84-A038-03FC6E8A9CD6}"
Подскажите пожалуйста как с этим бороться
← →
sniknik (2003-12-08 16:32) [1]> id=0x9ac01d9356c9844da03803fc6e8a9cd6
это есть правильно, т.ю. uniqueidentifier это
TGUID = packed record
D1: Longword;
D2: Word;
D3: Word;
D4: array[0..7] of Byte;
end;
а не строка как может показатся.
← →
Gandrey (2003-12-08 17:23) [2]исправление формулировки
update я делаю хранимой процедурой и в modifySQL компонента UpdateSQL у меня записано
exec SpUpdate_rah
( :OLD_N_R_Rah_id_rah
:V_U_Rah_KodRah,
:V_U_Rah_ImRah,
:V_U_Rah_TPAX)
на сервер прилетает
exec SpUpdate_rah
( 0x9ac01d9356c9844da03803fc6e8a9cd6
"12121",
"fghf",
2.0)
помгите мастера преобразовать Tbyte в uniqueidentifier
← →
sniknik (2003-12-08 17:41) [3]проба номер 2.
заглянем в BOL
uniqueidentifier constants
uniqueidentifier constants are a string representing a globally unique identifier (GUID) value. They can be specified in either a character or binary string format. Both of these examples specify the same GUID:
"6F9619FF-8B86-D011-B42D-00C04FC964FF"
0xff19966f868b11d0b42d00c04fc964ff
перевод последней строки оба этих примера определяют один и тотже GUID(значение).
своими словами: на сервер прилетает правильно, в чем проблема?
p.s. если уж приспичило чтонибудь преобразовать то за это в MSSQL отвечают функции CAST & CONVERT.
← →
Gandrey (2003-12-09 09:39) [4]Спасибо, помогло разобраться в проблеме
← →
tchn (2003-12-09 13:00) [5]да делов-то? нужно завести поля таблицы, и автоинкрементному полю явно указать значения:
AutoGenerateValue = arAutoInc
FieldKind = fkInternalCalc
тогда все заработает как часы, и не нужно городить ничего
← →
Пётр (2003-12-09 14:30) [6]uniqueidentifier - большая гадость. Работать с ним очень сложно, поэтому везде, где нужно, преобразую его в varchar(38) и всё работает нормально. С параметрами тоже нет ни каких проблем, если uniqueidentifier передавать просто, как строку.
← →
Gandrey (2003-12-10 19:00) [7]В адо с этим типом никаких проблем нет ...
А вот в BDE приходится извращаться
что касаемо uniqueidentifier (Может кому интересно)
нарыл в SQL функцию
declare @b varbinary(16)
set @b=0x9ac01d9356c9844da03803fc6e8a9cd6
master.dbo.fn_varbintohexstr(@b)
возращает "0x9ac01d9356c9844da03803fc6e8a9cd6"
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c