Форум: "Начинающим";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];
Вниз
DataSet Найти похожие ветки
← →
asdf2 (2008-03-28 15:50) [0]Как заставить ds выполнить запрос на вставку/удаление/изменение?
← →
Palladin © (2008-03-28 15:51) [1]У него куча методов для этого. Справку то чего? Лень посмотреть?
← →
asdf2 (2008-03-28 16:10) [2]имеется в виду это:
IBdsDataName.Insert;
IBdsDataName.FieldByName("DATE_CREATE").AsDateTime := Now;
IBdsDataName.FieldByName("NAME").AsString := str;
IBdsDataName.FieldByName("ID_DATA_NAME").AsInteger := 1;
IBdsDataName.Post;
?
← →
Palladin © (2008-03-28 16:11) [3]Если результат выполнения "этого" тебя удовлетворяет, то, сам то как думаешь, наверное "это".
← →
asdf2 (2008-03-28 16:15) [4]
> Palladin © (28.03.08 16:11) [3]
нет, не удовлетворяет.
INSERT INTO data_name (id_data_name, name, date_create)
VALUES ( (SELECT GEN_ID(gen_data_name_id, 1) from RDB$DATABASE), :name, :date_create)
как я получу значение енератора?
← →
Сергей М. © (2008-03-28 16:17) [5]
> как я получу значение енератора?
>
А как это соотносится с
> Как заставить ds выполнить запрос на вставку/удаление/изменение?
?
Никак.
← →
asdf2 (2008-03-28 16:18) [6]если так:
IBdsDataName.Insert;
IBdsDataName.ParamByName("NAME").AsString := str;
IBdsDataName.ParamByName("DATE_CREATE").AsDateTime := Now;
IBdsDataName.Post;
грит, нету таких полей
← →
asdf2 (2008-03-28 16:18) [7]
> Сергей М. © (28.03.08 16:17) [5]
в запросе я могу получить занчение ген
← →
Сергей М. © (2008-03-28 16:19) [8]
> asdf2 (28.03.08 16:18) [6]
Если "грит", то поверь ушам своим)
← →
Сергей М. © (2008-03-28 16:20) [9]
> asdf2 (28.03.08 16:18) [7]
> в запросе я могу получить занчение ген
Не можешь, если это не предусмотренно конкретной СУБД и конкретными же версиями/диалектом SQL.
← →
asdf2 (2008-03-28 16:20) [10]но оно есть
← →
asdf2 (2008-03-28 16:21) [11]
> Сергей М. © (28.03.08 16:20) [9]
предусмотрено
← →
Сергей М. © (2008-03-28 16:22) [12]
> asdf2 (28.03.08 16:21) [11]
> предусмотрено
Ну раз предусмотрено, то ничто не мешает воспользоваться этим и в варианте а-ля [6]
← →
Palladin © (2008-03-28 16:25) [13]AFAIK, DataSet не формирует Insert/Update/Delete запросы, он просто набор данных, с ограниченной функциональностью вставки удаления данных... и сложные вложенные SQL инстукции он создавать и исполнять не будет...
расслабся...
так что можешь либо в отдельной фукнции получить свой Select GEN_ID и позже уже с помощью insert/append вставить запись, либо, что гораздо проще, воспользоваться TXXXQuery
← →
asdf2 (2008-03-28 16:25) [14]нашел св-во GeneratorField. Все работает.
> Сергей М. © (28.03.08 16:22) [12]
интересно, каким образом?
← →
asdf2 (2008-03-28 16:26) [15]
> Palladin © (28.03.08 16:25) [13]
а я думал, что это "навороченный" компонент
← →
Сергей М. © (2008-03-28 16:27) [16]
> интересно, каким образом?
>
Да вот примерно таким же, каким это делает то самое чудесным образом найденное тобой св-во GeneratorField.
← →
Palladin © (2008-03-28 16:28) [17]вообще все зависит от типа DataSet...
← →
Ega23 © (2008-03-28 16:28) [18]
> а я думал, что это "навороченный" компонент
Почитай хелп, начнёшь думать правильно.
← →
Сергей М. © (2008-03-28 16:31) [19]
> asdf2
Но традиционно это делается след.образом:
- констрейнты по автоинкрементному полю не импортируются, это позволяет не получать по лбу, если при вставке/модификации новое значение поля явно не указываетсж
- в триггере на вставку значение поля первым делом проверяется на null, при положительной проверке триггер обращается к генератору.
← →
asdf2 (2008-03-28 16:43) [20]
> Сергей М. © (28.03.08 16:31) [19]
> - констрейнты по автоинкрементному полю не импортируются,
> это позволяет не получать по лбу, если при вставке/модификации
> новое значение поля явно не указываетсж
не понял, куда не надо импортировать?
> - в триггере на вставку значение поля первым делом проверяется
> на null, при положительной проверке триггер обращается к
> генератору.
не знаю я PSQL, а читать некогда
> Почитай хелп, начнёшь думать правильно.
я б с удовольствием, но там CharSet какой-то непонятный
← →
Palladin © (2008-03-28 16:52) [21]
> Сергей М. © (28.03.08 16:31) [19]
"Папа, а ты сейчас с кем разговаривал?" (С) :)
← →
Сергей М. © (2008-03-28 16:53) [22]
> asdf2 (28.03.08 16:43) [20]
> куда не надо импортировать?
см. TField.ImportedConstraint
> не знаю я PSQL, а читать некогда
Один такой вчера уже завершил бесславно свою "деятельность" в "Начинающих".
Сам найдешь кто и почему или подсказать ?
← →
Сергей М. © (2008-03-28 16:54) [23]
> Palladin © (28.03.08 16:52) [21]
))
← →
asdf2 (2008-03-28 17:04) [24]
> Сергей М. © (28.03.08 16:53) [22]
уже читал. Но, вроде как, в начинающих многие вопросы возникают по этой причине.
← →
Сергей М. © (2008-03-28 17:12) [25]
> вопросы возникают по этой причине.
По какой же ?
Проверка на допустимость значения выполняется либо "здесь" либо "там" (либо и "здесь" и "там")
Импортирование констрейнта подразумевает неявную проверку "здесь". Если она есть "там", то аналогичная проверка "здесь" в простейших случаях, как правило, нафих не нужна, ибо добавляет дурацких хлопот.
← →
asdf2 (2008-03-28 17:16) [26]
> Сергей М. © (28.03.08 17:12) [25]
не читают/знают? По какой же еще? Кроме, канеш, http://psy.1september.ru/articlef.php?ID=200500507
← →
Сергей М. © (2008-03-28 17:24) [27]
> По какой же еще?
Не знают, не читают, при этом ни знать ни читать не хотят, гоня дурку про "некогда" и пр.)
← →
asdf2 (2008-03-28 17:33) [28]
> Сергей М. © (28.03.08 17:24) [27]
разоблачил
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.084 c