Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];

Вниз

Oracle+DOA   Найти похожие ветки 

 
WellSlava   (2006-04-04 09:29) [0]

У меня naraz проблемма: есть редактируемый набор данных (так неоходимо, компонент TOracleDataSet). При редактировании записей все нормально, но при встатвке ругается на поле первичного ключа, что оно должно иметь значение. Поле первичного ключа не Sequence, а генерится по другому в триггере before insert.
Вопрос: можно ли сделать так, чтобы добавлять запись можно было бы также в этом наборе данных? Если можно, то как?


 
Reindeer Moss Eater ©   (2006-04-04 09:30) [1]

TField.Required


 
WellSlava   (2006-04-04 09:44) [2]

Добавил поля как объекты, у каждого поля Required = true; Все равно выдает ошибку Field "ID_d" must have a value


 
Sergey13 ©   (2006-04-04 09:49) [3]

2[2] WellSlava   (04.04.06 09:44)
> у каждого поля Required = true
У ID False поставь.

>Поле первичного ключа не Sequence, а генерится по другому в триггере before insert.
Зря.


 
WellSlava   (2006-04-04 09:53) [4]

спасибо... получилось..
Я понимаю, что лучше Sequence, но оно должно быть не 1,2,3... а нести должно информацию типа 100230034


 
Sergey13 ©   (2006-04-04 09:58) [5]

2 [4] WellSlava   (04.04.06 09:53)
> но оно должно быть не 1,2,3... а нести должно информацию типа 100230034

В этом и ошибка. Не должно оно ничего нести кроме уникальности. Если нужен альтернативный ключ - сделай его отдельным полем. Иначе, в случае перекодировки (а это случается к сожалению), получишь здоровенный геморой.


 
WellSlava   (2006-04-04 12:26) [6]

блин.... опять что-то не то... пишу все этапы
1. пложил на форму компонент TOracleDataSet
2. пишу Select для редактируемого DataSet-a (Select RowID...)
3. проверяю: редактирование работает как надо - изменил запись, перешел на другую, там изменил вернулся обратно опять что-то изменил (то же поле или разные  - не важно) все работает. Но не работает добавление записи!!!
4. добавляю поля как объекты, выставляю где надо и как надо Required - запись добавляет. Но изменить дает только один раз!!! Если перешел на другую запись, возвращаюсь обратно хочу изменить выдает "Record has been changed by another user".
5. удаляю поля-объекты, т.е. убираю то, что делел в п.4. Проверяю - редактировать дает только один раз и запись не добавляет.
Кто-нибудь знает в чем дело?


 
Курдль ©   (2006-04-04 12:32) [7]

Пункт 4 не раскрыт :(
Что значит "добавляю поля как объекты"?


 
Sergey13 ©   (2006-04-04 12:39) [8]

2[6] WellSlava   (04.04.06 12:26)
Параметры ОраСессии и текст запроса опубликуй.


 
WellSlava   (2006-04-04 12:58) [9]

запрос Select D.RowId, D.* From Dicts D
а какие именно параметры? свойства TOraclesesion?


 
Sergey13 ©   (2006-04-04 13:00) [10]

2[9] WellSlava   (04.04.06 12:58)
> свойства TOraclesesion?
Угу.


 
WellSlava   (2006-04-04 13:19) [11]

BytePerCharacter    = bc1Byte
ConnectAs             = caNormal
DesignConnection    = False
IsolationLevel         = ilUnchanged
MessageTable        =
MTSOptions           = [moImplicit,moUniqueServer]
NullValue               = nvUnAssigned
OptimizerGoal         = ogUnchanged
Pool                     =
Pooling                 = spNone
Preferences          = (TSessionPreferences)
  ConvertCLRF      = True
  NullLOBIsEmpty  = False
  NullObjectIsEmpty = False
  SmallIntPrecision = -1
  TemporaryLOB    = tlCache
  TimeStampAsString = False
  TrimStringFields  = True
  UseOSI7            = False
  ZeroDateIsNull    = True
RollbackOnDisconnect = False
SQLTrace             = stUnchanged
StatementCache    = False
StatementCacheSize = 20
ThreadSave          = False


 
Sergey13 ©   (2006-04-04 13:32) [12]

2 [11] WellSlava   (04.04.06 13:19)
Это только с этим датасетом "глюки", или с любым?
Тригер на ID можно глянуть? Он срабатывает? ИД-шник появляется? Правильный?


 
WellSlava   (2006-04-04 13:39) [13]

да мне только этот датасет и нужно так делать... остальное делаю через Insert into... триггер срабатывает, ID генерится правильно...
после п. 4 (см. выше) все работает как надо, но только один раз дает менять... я пробовал делать CommitUpdates - все равно ошибка


 
Sergey13 ©   (2006-04-04 13:53) [14]

2[13] WellSlava   (04.04.06 13:39)
У тебя ОраМонитор из ДОА не стоИт случайно? Посмотреть бы что в Оракл уходит. Странно это все. Глянуть бы еще свойства дататасета, аналогично [11].


 
WellSlava   (2006-04-04 14:04) [15]

Монитора нет... Свойства датасета - все по умолчанию - ничего не менял


 
ANB ©   (2006-04-04 14:19) [16]


> WellSlava   (04.04.06 14:04) [15]
> Монитора нет... Свойства датасета - все по умолчанию - ничего
> не менял

По всей видимости, твой новый ID не приехал в набор данных. Надо зарефрешить НД после вставки. Вообще, в DOA лучше не делать редактируемые наборы данных - замучаешься. ODAC для этого лучше приспособлен.


 
WellSlava   (2006-04-04 14:27) [17]


> По всей видимости, твой новый ID не приехал в набор данных.
>  Надо зарефрешить НД после вставки. Вообще, в DOA лучше
> не делать редактируемые наборы данных - замучаешься. ODAC
> для этого лучше приспособлен.

вот именно!!! нашел!!
в RefrechOptions надо выставить roAfterInsert и roAfterUpdate в true!!!

всем спасибо.


 
Sergey13 ©   (2006-04-04 14:56) [18]

2[16] ANB ©   (04.04.06 14:19)
> По всей видимости, твой новый ID не приехал в набор данных.
ИД ему пофиг вроде, для этого. Если мне память не изменяет, он работает напрямую с RowID (для чего он собственно и нужен в "живом" запросе).

> Вообще, в DOA лучше не делать редактируемые наборы данных - замучаешься.
А мужики то не знают!!! 8-)


 
ANB ©   (2006-04-04 17:24) [19]


> > Вообще, в DOA лучше не делать редактируемые наборы данных
> - замучаешься.
> А мужики то не знают!!! 8-)

доступ к rowid есть не всегда.


 
ANB ©   (2006-04-04 17:25) [20]


> ИД ему пофиг вроде, для этого.

дык rowid тоже не приехал.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.012 c
2-1147445279
SummerSwan
2006-05-12 18:47
2006.05.28
TFileStream


4-1141980849
Альберт
2006-03-10 11:54
2006.05.28
Канва и прочие премудрости


2-1147069409
konischev
2006-05-08 10:23
2006.05.28
О передаче данных из DLL в программу по событию


2-1147288748
zxcv
2006-05-10 23:19
2006.05.28
hex editor


2-1147159577
romychk
2006-05-09 11:26
2006.05.28
Не открывается файл Paradoxa.А он очень нужен есть ли аналог DBED





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский