Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Динамический SQL и передача параметров  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
Изобретаю велосипед с UPDATE для dataGridView, а именно - при окончании редактирования строки мечтается передавать изменения на сервер. На сервере хранимка с одной единственной инструкцией EXEC(@Query), где @Query содержит сформированную на клиенте строку запроса. Есть стремный момент - в гриде есть текстовые поля (типа наименований и т.п.) в которые можно внести всякие гадости типа 'DROP'
Как поступают в такой ситуации настоящие индейцы? (Механизм обновления от ADO не пользую по религиозным причинам)
11 июл 13, 15:46    [14553272]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Красное перо ,сипользует процедуру с параметрами ,и не занимаеться построение граблефабрики
НО есть еще вождь Белое перо - котрое посоветует вам сделать вью ,и обновлять его
Не один уважающий себя ерокез - не будет придумывать себе геморой выбереая ваш путь:)
А к каким индейцам топать -ето едло вкуса,и реализация архитектуры вашего приложения
11 июл 13, 15:49    [14553297]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
religion
Guest
waszkiewicz, вернуться в лоно церкви
или, как минимум, использовать параметры, а не просто строку

да прибудет с тобой ...
11 июл 13, 15:51    [14553312]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
Maxx,
количество параметров заранее неизвестно. А обновлять сразу все поля в записи - как-то не спортивно. Хотя в справочниках редко больше 10 полей - проще отдельный сбацать с нужным набором. В случае обновления всех полей - число ХП растет пропорционально числу справочников. А хотелось универсальности
11 июл 13, 15:53    [14553324]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Динамика тут не при чём.
Весь запрос ведь можно сформировать на клиенте в виде строки,
с уже прописанными там значениями "параметров".

Отойдите подальше - меня сейчас будут бить ногами...

P.S. А чего они достали уже своими параметрами! :))
11 июл 13, 16:03    [14553403]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
waszkiewicz
Maxx,
количество параметров заранее неизвестно. А обновлять сразу все поля в записи - как-то не спортивно. Хотя в справочниках редко больше 10 полей - проще отдельный сбацать с нужным набором. В случае обновления всех полей - число ХП растет пропорционально числу справочников. А хотелось универсальности


а зачем все поля апдейтить,только те который поменялись и апдейте.
Универсальность - путь в никуда,увы, ИМХО
Тем более динамик сиквел тянет за собой кучу "счастья"
11 июл 13, 16:17    [14553528]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
Maxx,
апдейтить поле сразу после его изменения? Или я чего-то не понял?
11 июл 13, 16:22    [14553565]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ваще любая акция - должна быть санкционирована , так что команду апдейт на сервер надо посылать только после того,как нажали кнопочку на форме с надписью "Изменить" , опять же мое мнение
11 июл 13, 16:24    [14553582]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
waszkiewicz
Изобретаю велосипед с UPDATE для dataGridView
Под номером №100500
Лишь бы не пользоваться стандартными. Ну вот как затравка, не более.

А вообще да, надоело читать, хочу хотя бы в 19 век, почувствовать себя "творцом".
11 июл 13, 16:28    [14553613]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
Maxx
ваще любая акция - должна быть санкционирована , так что команду апдейт на сервер надо посылать только после того,как нажали кнопочку на форме с надписью "Изменить" , опять же мое мнение

так нет никакой разницы (в разрезе моего вопроса) кнопку нажали или активную строку сменили
11 июл 13, 16:36    [14553692]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Maxx
ваще любая акция - должна быть санкционирована , так что команду апдейт на сервер надо посылать только после того,как нажали кнопочку на форме с надписью "Изменить" , опять же мое мнение
Не "Изменить", а "Подтвердить"!
"Изменить" обычно относится к началу редактирования в экранной форме.
До "Подтвердить" ведь ещё можно одуматься и "Отменить"!
11 июл 13, 16:43    [14553757]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
iap, О Великий Змей - еще есть кпоки "Погодите я Думаю"
11 июл 13, 16:47    [14553779]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
В целом, "Loosing My Religion" пока не планирую. Смотрю в сторону sp_prepexec
11 июл 13, 17:29    [14554098]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
iap
Maxx
ваще любая акция - должна быть санкционирована , так что команду апдейт на сервер надо посылать только после того,как нажали кнопочку на форме с надписью "Изменить" , опять же мое мнение
Не "Изменить", а "Подтвердить"!
"Изменить" обычно относится к началу редактирования в экранной форме.
До "Подтвердить" ведь ещё можно одуматься и "Отменить"!

Сильно MS Office разбаловал пользователей (вместе с Odin's Ass) - никаких лишних движений не хотят
11 июл 13, 17:31    [14554112]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
waszkiewicz
На сервере хранимка с одной единственной инструкцией EXEC(@Query), где @Query содержит сформированную на клиенте строку запроса.
Ну и на черта вам эта обертка? Чтобы когда спросят как у вас реализована работа с БД, гордо ответить что через хранимы процедуры? Абсурд.

waszkiewicz
Есть стремный момент - в гриде есть текстовые поля (типа наименований и т.п.) в которые можно внести всякие гадости типа 'DROP'
Параметры. Не, не слышал?
11 июл 13, 20:08    [14554739]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2415
Хранимки. Хра.ним.ки. с Параметрами

waszkiewicz
На сервере хранимка с одной единственной инструкцией EXEC(@Query), где @Query содержит сформированную на клиенте строку запроса.


удалите это заряженный пистолет, от виска пользователя
12 июл 13, 09:48    [14555651]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
если сильно хочется то можно на клиенте генерить один структурированный параметр типа xml а в процедуре раскручивать его в sql-инструкцию
упрощённо что-то типа такого
параметр
<command type="update" tablename="table1">
	<field name="field1"  value="value1"/>
	<field name="field2"  value="value2"/>
	<field name="fieldn"  value="valuen"/>
	<where fieldname='field5' value="value5">	
	<where fieldname='field6' value="value6">	
</command>

инструкция
update table1
set field1=value1
,field2=value2
,fieldn=valuen
where field5=value5
and field6=value6
12 июл 13, 10:11    [14555817]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
LexusR
если сильно хочется то можно на клиенте генерить один структурированный параметр типа xml а в процедуре раскручивать его в sql-инструкцию
упрощённо что-то типа такого
параметр
<command type="update" tablename="table1">
	<field name="field1"  value="value1"/>
	<field name="field2"  value="value2"/>
	<field name="fieldn"  value="valuen"/>
	<where fieldname='field5' value="value5">	
	<where fieldname='field6' value="value6">	
</command>

инструкция
update table1
set field1=value1
,field2=value2
,fieldn=valuen
where field5=value5
and field6=value6
Почему же сразу не передавать серверу готовую sql-инструкцию???
Чем XML лучше-то?
12 июл 13, 10:29    [14555961]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34705
waszkiewicz
Изобретаю велосипед с UPDATE для dataGridView, а именно - при окончании редактирования строки мечтается передавать изменения на сервер. На сервере хранимка с одной единственной инструкцией EXEC(@Query), где @Query содержит сформированную на клиенте строку запроса.



Перво-наперво, нафига такая хранимка вообще нужна?
Смысл в её существовании -- полный ноль.
Шли запросы напрямую.
12 июл 13, 10:32    [14555977]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34705
waszkiewicz
Maxx,
количество параметров заранее неизвестно. А обновлять сразу все поля в записи - как-то не спортивно.


Как раз наоборот, очень спортивно.
12 июл 13, 10:33    [14555987]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34705
iap
Динамика тут не при чём.
Весь запрос ведь можно сформировать на клиенте в виде строки,
с уже прописанными там значениями "параметров".

Отойдите подальше - меня сейчас будут бить ногами...

P.S. А чего они достали уже своими параметрами! :))


За что бить?
Даже такой подход лучше, чем использование такойх хранимки.
12 июл 13, 10:34    [14555997]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34705
waszkiewicz
В целом, "Loosing My Religion" пока не планирую. Смотрю в сторону sp_prepexec


Ну и дурак. Лучше бы послушал, что старшие тебе хором говорят.

Короче, на каждую таблицу 3 процедуры:

для insert -- все поля в виде параметров, одно, выходное -- для PK (или несколько, если PK составной).
для update -- все поля в виде параметров, плюс поля PK. Поля все, кроме PK, устанавливаются в новые значения.
PK менять никогда нельзя.
для delete -- только поля PK.

К этому можно ещё добавить N процедур для выборки данных. Все (если немного), по ключу, и для каки-то любимых поисков пользователей.
12 июл 13, 10:41    [14556062]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Плять. Чё за ласапеды.
1. Решений дофига. Точнее принципов.
2. Реализация этих решений дофига.

Diffgrams, что я писал выше, ну тот что поддерживается .Net и MSSQL, тот что формата XML. Это всего лишь одно из.
Почитайте его и поищите похожее, познайте дзен сей задачи и тогда поймёте, стоит вообще что-то городить и что использовать.

Если вам не нравиться реализация одних из этих стандартных либ, то хоть скажите в чём. Принципом аля типа обёртка можно всё допилить под себя.

Зачем проходить поле граблей по новому?

Мой дед прошёл 100500 граблей.
Мой отец прошёл те же 100500 граблей.
И я и мои потомки будут биться головой о те же грабли.
Ибо чукча не читатель, чукча писатель.
;)
12 июл 13, 16:51    [14559490]     Ответить | Цитировать Сообщить модератору
 Re: Динамический SQL и передача параметров  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
MasterZiv
Короче, на каждую таблицу 3 процедуры
Тоже не имба. От задачи и подхода зависит.
12 июл 13, 16:52    [14559499]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить