Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.20;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.02 c
2-1206273219
Бегущий человек
2008-03-23 14:53
2008.04.20
Как заюзать функцию из С-файла в проекте Delphi?


15-1204721767
Petr V. Abramov
2008-03-05 15:56
2008.04.20
Позаботились об отечественном IT


6-1185300202
malyar
2007-07-24 22:03
2008.04.20
как получить все строки принятые idtcpclient(ом)


2-1206097183
dumka
2008-03-21 13:59
2008.04.20
Отчеты


3-1195294675
Neket
2007-11-17 13:17
2008.04.20
Расчет среднего значения.