powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Две исполняемые строки в InsertCommand
20 сообщений из 20, страница 1 из 1
Две исполняемые строки в InsertCommand
    #32597786
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток !

Люди добрыя, проясните мне пожалуйста вопрос:

Смотрю на строку в InsertCommand и вижу два запроса через ;, а именно "insert into ....; select ...." Это характерно только для InsertCommand или такое можно писать и для других Command.

Спасибо.
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32598270
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select добавляется по умолчанию дата-мастером Visual Studio, нужен он для того чтобы обновить данные вашего DataSet, например полученные при Insert значения полей Identity.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32598578
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но с Вашего разрешения я продолжу тему, поскольку вопрос имеет продолжение.

Проблема в следующем:

Можно ли в DeleteCommand, аналогично как и в InsertCommand, перед строкой с DELETE, через точку с запятой поставить строку типа

Код: plaintext
UPDATE TAB1 SET COLUMN1=@strRaram WHERE ideColumn = @Original_ideColumn; DELKETE .....

соответственно добавив параметр @strRaram. Заранее отвечу на возможный вопрос: "А на кой апдейтить удаляемые строки ?" - на TAB1 стоит триггер instead of delete, который не даёт физически удалять строки.
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32598579
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин !!!

поправлюсь

Код: plaintext
UPDATE TAB1 SET COLUMN1=@strRaram WHERE ideColumn = @Original_ideColumn; DELETE
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32598762
Hummer from home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 sposad
Используйте ХП - проблемы будут решены.
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32598975
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да запихнуть можно все что угодно.
Но если речь идет о MS SQL Server, то послушайте совет Hummer from home .

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32598984
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sa
Это даже в том случае, если речь идёт об Оракле, Интербайз и т.п.
Даже при работе с Access при желании можно сделать тоже самое, правда в последнем случае, наличие Access на клиенте необходимо.

Всё это к тому, что писать SQL-инструкции в коде я считаю не совсем верным. По возможности стараюсь этого избегать.
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599027
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hummer
Это даже в том случае, если речь идёт об Оракле, Интербайз и т.п.

Согласен

Hummer
Всё это к тому, что писать SQL-инструкции в коде я считаю не совсем верным. По возможности стараюсь этого избегать.

Согласен, если речь идет о СУБД имеющих возможность использовать ХП. Но иногда я делаю универсальные вещи, которые будут работать на чем угодно, тогда про ХП приходиться забыть :-(

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599077
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется, если речь идёт о приложении, которое может использовать нескольку различных СУБД (по желанию пользователя), тот тут такой подход не совсем верен - сделать можно, но придётся повозиться.
С другой стороны, есть отдельный "фреймворк" (если это можно так назвать), который позволяет не писать самому инструкции по работе с данными, а описывать сущности (т.е. таблички в БД) как классы - и уже вызывать методы этого фреймворка (они наследуются к вашим описанным класам).
Т.е. получается своеобразная настройка над вашим приложением. Работает он со многими субд (настраивается всё через xml файлы).
Название сейчас не припомню - просто стоит у начальника на машине, а он сейчас в отпуске...
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599189
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я как бы тоже обеими руками за ХП, только никак не могу сообразть, как в триггер засунуть параметр с клиента. Что-то мне кажется вряд ли это получится, или ... ??? Задача состоит в том, чтобы в удаляемые логически записи (повторюсь instead of delete) записать строку, т.е. сделать что-то типа

Код: plaintext
UPDATE TAB1 SET COLUMN1=@strRaram (параметр с клиента) WHERE ideColumn = ideColumn таблицы триггера deleted

Но ведь таблица триггера видна только в триггере, а апдейтить надо только логически удаляемые строки, номера которых можно получить только из таблицы триггера. Или писать в триггер ХП, перегоняющую таблицу deleted во временную таблицу и эту временную таблицу вытаскивать в dataset, параметр записывать уже в неё, а потом с помощью этой таблицы апдейтить строки ... блин, что-то очень сложно, переспективы плохо просматриваются по крайней мере для меня ...
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599282
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пипец:)
Разруха она в головах.

Передаём параметр в Хп, далее в ХП делаем сначала Update удаляемым строкам - таблица Deleted у нас ещё не появилась, не так ли, а потом удаляем (уже по другому параметру от клиента).

Вы сначала хотите сделать Delete в какой-то табличке, потом чтобы триггер вам изменил записи в другой - верно?
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599315
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hummer Вы сначала хотите сделать Delete в какой-то табличке, потом чтобы триггер вам изменил записи в другой - верно?

Да нет, не в другой, а в этой же самой.
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599381
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда ещё проще - чем последовательность действий не устраивает?:)
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599442
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HummerПередаём параметр в Хп, далее в ХП делаем сначала Update удаляемым строкам - таблица Deleted у нас ещё не появилась, не так ли, а потом удаляем (уже по другому параметру от клиента).


HummerТогда ещё проще - чем последовательность действий не устраивает?:)

Записи удаляются по выделению в DataGrid, передать в ХП параметр можно, а как в ХП передать номера строк, которые надо Update этим параметром ?

Хотя предположения есть, сделаю, проверю, напишу.
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599472
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При удалении в датагриде у вас происходит помечание строк в дататейбле меткой deleted, потом вы делаете Update для датасета и у вас только тогда произойдёт физическое удаление записей из таблицы (ну если команда правильно написана:) ). Вот в delete command можно прописать хп с параметрами из таблицы - а дальше делайте что угодно в вашей хп.

Что непонятного? Отделяйте мух от котлет - при чём тут триггера и таблица Deleted в триггере?:) Интересно, а на сервере вы как собираетесь параметр в триггер передавать?:)
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599544
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПри удалении в датагриде у вас происходит помечание строк в дататейбле меткой deleted, потом вы делаете Update для датасета и у вас только тогда произойдёт физическое удаление записей из таблицы (ну если команда правильно написана:) ). Вот в delete command можно прописать хп с параметрами из таблицы - а дальше делайте что угодно в вашей хп.

Ну вот примерно так и хочу сделать, просто по ламерству ещё упираюсь в код мастера.

авторИнтересно, а на сервере вы как собираетесь параметр в триггер передавать?:)

Да вроде никак, о чём и писал выше.
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599598
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Радикальное предложение:
Бросайте свои мастера, реализуйте свою обработку DataSet. DataAdapter можно вообще не использовать.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599648
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sa

Да если сразу знать всё, может и бросил бы. Например я о такой возможности без адаптера в первый раз слышу. Вся литература, какая у меня есть - вся в разделе ADO завязана на адаптеры. В MSDN обычно легко найти только что-то очень конкретное. Общие вопросы можно там читать только весьма прилично зная английский.
А радикальные предложения для меня всегда интересны.
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32599752
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sposad
Например я о такой возможности без адаптера в первый раз слышу. Вся литература, какая у меня есть - вся в разделе ADO завязана на адаптеры.

Еще как без него можно, на то он и Data Adapter - внутри использует DataReader и Command

Но в вашем случае я бы последовал совету Hummer . Ведь в ХП можно написать все что угодно - например инсертить чего-нибудь вместо удаления

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Две исполняемые строки в InsertCommand
    #32602974
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во !!! Наконец-то добрался до инета, а то вроде нехорошо долго не сообщать о результатах применения советов.

Так вот, огромное спасибо Hummer и Sa, всегда знал, что здешний народ не даст пропасть. Если бы ни Вы, не знаю, когда бы у меня поднялась рука в DeleteCommand запихать что-то кроме "DELETE ..."
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Две исполняемые строки в InsertCommand
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]