Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
16.09.2003, 08:28
|
|||
|---|---|---|---|
|
|||
Delphi5 с DB2 |
|||
|
#18+
Помогите, с такой проблемой: Нужно добавить запись в таблицу DB2, у которой идентификатор Id генерируется автоматически, (задано при формировании таблицы. При Insert идентификатор не формируется - как быть? Подставить значение Id тоже запрещается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.09.2003, 09:50
|
|||
|---|---|---|---|
|
|||
Delphi5 с DB2 |
|||
|
#18+
А работа через АДО ? Однозначно пока можно сказать только одно - после Post можно делать Requery (Close; Open;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.09.2003, 09:59
|
|||
|---|---|---|---|
|
|||
Delphi5 с DB2 |
|||
|
#18+
Скорее всего этому полю не следует указывать явное значение при INSERT'е Попробуй по схеме: INSERT INTO SCHEMA.TABLE1 (NAME) VALUES(:NAME) Либо INSERT INTO SCHEMA.TABLE1 (ID, NAME) VALUES(DEFAULT, :NAME) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.09.2003, 10:13
|
|||
|---|---|---|---|
|
|||
Delphi5 с DB2 |
|||
|
#18+
Но такие вещи при работе с DB2 легко решаются если ID поле создавать: CREATE TABLE DB2ADMIN.TEST_1 (ID CHARACTER(13) FOR BIT DATA NOT NULL DEFAULT '', NAME VARCHAR(64), PRIMARY KEY (ID)) IN DATA_TABLESPACE INDEX IN INDEX_TABLESPACE; Создаем триггер на случай по DEFAULT: CREATE TRIGGER DB2ADMIN.TEST_1_B_INS_0 NO CASCADE BEFORE INSERT ON DB2ADMIN.TEST_1 REFERENCING NEW AS NEWROW FOR EACH ROW MODE DB2SQL WHEN (NEWROW.ID = '') BEGIN ATOMIC SET NEWROW.ID = GENERATE_UNIQUE(); END Далее, если приложение нуждается в генерации явного ID, то берется Query, где Query1.SQL.Text = 'SELECT NUM.NUM FROM (VALUES(GENERATE_UNIQUE())) AS NUM(NUM)' И оформляется функция: function TDataModule1.GenerateUnique: Variant; begin Self.Query1.Open; Result:= Self.Query1.FieldByName('NUM').Value; Self.Query1.Close end; И на нужный DataSet "вешаем" событие: procedure TForm1.QueryData.OnNewRecord(DataSet: TDataSet); begin DataSet.FieldByName('ID').Value:= DataModule1.GenerateUnique end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2116880]: |
0ms |
get settings: |
10ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
92ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 458ms |

| 0 / 0 |
