![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DataSet
asdf2 © (2008-03-28 15:50:00)Как заставить ds выполнить запрос на вставку/удаление/изменение?
asdf2 (2008-03-28 17:33:00) [1]
> Сергей М. © (28.03.08 17:24) [27]
разоблачил
Сергей М. (2008-03-28 17:24:00) [2]
> По какой же еще?
Не знают, не читают, при этом ни знать ни читать не хотят, гоня дурку про "некогда" и пр.)
asdf2 (2008-03-28 17:16:00) [3]
> Сергей М. © (28.03.08 17:12) [25]
не читают/знают? По какой же еще? Кроме, канеш, http://psy.1september.ru/articlef.php?ID=200500507
Сергей М. (2008-03-28 17:12:00) [4]
> вопросы возникают по этой причине.
По какой же ?
Проверка на допустимость значения выполняется либо "здесь" либо "там" (либо и "здесь" и "там")
Импортирование констрейнта подразумевает неявную проверку "здесь". Если она есть "там", то аналогичная проверка "здесь" в простейших случаях, как правило, нафих не нужна, ибо добавляет дурацких хлопот.
asdf2 (2008-03-28 17:04:00) [5]
> Сергей М. © (28.03.08 16:53) [22]
уже читал. Но, вроде как, в начинающих многие вопросы возникают по этой причине.
Сергей М. (2008-03-28 16:54:00) [6]
> Palladin © (28.03.08 16:52) [21]
))
Сергей М. (2008-03-28 16:53:00) [7]
> asdf2 (28.03.08 16:43) [20]
> куда не надо импортировать?
см. TField.ImportedConstraint
> не знаю я PSQL, а читать некогда
Один такой вчера уже завершил бесславно свою "деятельность" в "Начинающих".
Сам найдешь кто и почему или подсказать ?
Palladin (2008-03-28 16:52:00) [8]
> Сергей М. © (28.03.08 16:31) [19]
"Папа, а ты сейчас с кем разговаривал?" (С) :)
asdf2 (2008-03-28 16:43:00) [9]
> Сергей М. © (28.03.08 16:31) [19]
> - констрейнты по автоинкрементному полю не импортируются,
> это позволяет не получать по лбу, если при вставке/модификации
> новое значение поля явно не указываетсж
не понял, куда не надо импортировать?
> - в триггере на вставку значение поля первым делом проверяется
> на null, при положительной проверке триггер обращается к
> генератору.
не знаю я PSQL, а читать некогда
> Почитай хелп, начнёшь думать правильно.
я б с удовольствием, но там CharSet какой-то непонятный
Сергей М. (2008-03-28 16:31:00) [10]
> asdf2
Но традиционно это делается след.образом:
- констрейнты по автоинкрементному полю не импортируются, это позволяет не получать по лбу, если при вставке/модификации новое значение поля явно не указываетсж
- в триггере на вставку значение поля первым делом проверяется на null, при положительной проверке триггер обращается к генератору.
Ega23 (2008-03-28 16:28:00) [11]
> а я думал, что это "навороченный" компонент
Почитай хелп, начнёшь думать правильно.
Palladin (2008-03-28 16:28:00) [12]вообще все зависит от типа DataSet...
Сергей М. (2008-03-28 16:27:00) [13]
> интересно, каким образом?
>
Да вот примерно таким же, каким это делает то самое чудесным образом найденное тобой св-во GeneratorField.
asdf2 (2008-03-28 16:26:00) [14]
> Palladin © (28.03.08 16:25) [13]
а я думал, что это "навороченный" компонент
asdf2 (2008-03-28 16:25:00) [15]нашел св-во GeneratorField. Все работает.
> Сергей М. © (28.03.08 16:22) [12]
интересно, каким образом?
Palladin (2008-03-28 16:25:00) [16]AFAIK, DataSet не формирует Insert/Update/Delete запросы, он просто набор данных, с ограниченной функциональностью вставки удаления данных... и сложные вложенные SQL инстукции он создавать и исполнять не будет...
расслабся...
так что можешь либо в отдельной фукнции получить свой Select GEN_ID и позже уже с помощью insert/append вставить запись, либо, что гораздо проще, воспользоваться TXXXQuery
Сергей М. (2008-03-28 16:22:00) [17]
> asdf2 (28.03.08 16:21) [11]
> предусмотрено
Ну раз предусмотрено, то ничто не мешает воспользоваться этим и в варианте а-ля [6]
asdf2 (2008-03-28 16:21:00) [18]
> Сергей М. © (28.03.08 16:20) [9]
предусмотрено
asdf2 (2008-03-28 16:20:00) [19]но оно есть
Сергей М. (2008-03-28 16:20:00) [20]
> asdf2 (28.03.08 16:18) [7]
> в запросе я могу получить занчение ген
Не можешь, если это не предусмотренно конкретной СУБД и конкретными же версиями/диалектом SQL.