Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1204502666
Поп Гапон
2008-03-03 03:04
2008.04.20
А как китайцы набирают текст


2-1206252269
Igor23
2008-03-23 09:04
2008.04.20
Активные формы


15-1204617442
Kolan
2008-03-04 10:57
2008.04.20
А можно ли на двух мониторах в паре поставить разное разрешение?


8-1178783833
Veter
2007-05-10 11:57
2008.04.20
удаление TShape


2-1206505428
Pavelkq
2008-03-26 07:23
2008.04.20
Перенос файлов без запроса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский