Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

пустой GUID [D7, MSSQL]


Quart ©   (2011-08-08 14:31:00) 

Извините за ламерский вопрос. Чувствую, что дело в пропертях AdoDataSet'a.
Делаю так:

AdoDataSet.Append;
AdoDataSet.Post;
id:=AdoDataSet.FieldByName('id').AsString;


но в Id передаются нули, хотя в самой таблице БД GUID сформировался нормальный, что я делаю не так?
Поле типа uniqueidentifier, значение или привязка по умолчанию (newid())
Спасибо!


Ega23   (2011-08-09 01:08:00) [1]


> Так как тогда получить ГУИД вновь введенной записи?


ADODataSet1.CommandText := '
declare @X uniqueidenifier;
set @x=newid();
insert into ttt(uid, some_value) values (@x, '''bla-bla-bla''');
select result=@x;';

ADODataSet1.Open;
Result := ADODataSet1.Fields[0].As  (вот тут не помню, вроде к них GUID есть, или через строку приводить?)


Как-то так.


sniknik   (2011-08-08 15:50:00) [2]

> т.е. так?
в самом самом плохом, ресурсоемком варианте... да, так.

> А вот это не понял...

...
AdoDataSet.FieldByName('id').AsGuid:= Guid;
AdoDataSet.Post;

что непонятного?


Quart   (2011-08-08 15:34:00) [3]


> пере запрос данных по записи, или всех по таблице,

т.е. так?

AdoDataSet.Close;
AdoDataSet.Open;
Locate(...)

А вот это не понял...
> или генерить гуид на клиенте, пусть по умолчанию умолчанием
> и остается, а в нормальном варианте значение задавать...
> .



sniknik   (2011-08-08 15:27:00) [4]

> что дело в пропертях AdoDataSet'a.
кстати да, можно заставить обновляться и в пропертями... тем есть указание/можно выставить, на пере запрос. но только не "галочкой" а прописыванием свойств рантайм... проще (и оно же менее "загрузочно") значение задавать.


sniknik   (2011-08-08 15:23:00) [5]

пере запрос данных по записи,
или всех по таблице,
или генерить гуид на клиенте, пусть по умолчанию умолчанием и остается, а в нормальном варианте значение задавать....


Quart   (2011-08-08 15:01:00) [6]

Так как тогда получить ГУИД вновь введенной записи?


Медвежонок Пятачок   (2011-08-08 14:59:00) [7]

хотя в самой таблице БД GUID сформировался нормальный

сама таблица там и гуид, а сам датасет здесь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо