|
|
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть следующий вопрос. Имеем объект Command с CoomandType=StoredProcedure и с заполненной коллекцией параметров. Требуется получить полную строку обращения Command к серверу типа "exec ИмяПроцедуры ИмяПараметра1=ЗначениеПараметра1, ИмяПараметра2=ЗначениеПараметра2 ..." Понятно, что можно опросить коллекцию параметров, проверить типы и слепить строку вручную. Но может, есть более ловкие способы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 12:05 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
Profiler ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 12:58 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
buserProfiler И?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 13:02 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
что и? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 18:32 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
winsky!что и? Каким образом при помощи вышеупомянутого профалера получить строковую переменную, содержащую вызов хранимой процедуре в вышеописанном виде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 20:08 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
zz Каким образом при помощи вышеупомянутого профалера получить строковую переменную, содержащую вызов хранимой процедуре в вышеописанном виде? насколько я понял речь шла об SQL Profiler . zz Требуется получить полную строку обращения Command к серверу типа "exec ИмяПроцедуры ИмяПараметра1=ЗначениеПараметра1, ИмяПараметра2=ЗначениеПараметра2 ..." Вы хотите получить текст из своей программы? интересует для каких целей? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 22:07 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
2 zz: Нет никакой строки обращения. Имеется удалённый выбор процедуры(RPC). Если интересуют подробности - см www.freetds.org ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 22:30 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
Saнасколько я понял речь шла об SQL Profiler. Я догадался ) авторВы хотите получить текст из своей программы? интересует для каких целей? Да, совершенно верно. Цель - если она важна - проста: получить на сервере дубликат рекордсета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 22:31 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
zz Цель - если она важна - проста: получить на сервере дубликат рекордсета. повидимому это описка или нет? о каком рекордсете (recordset) идет речь? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 08:15 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
Sa[quot zz] Цель - если она важна - проста: получить на сервере дубликат рекордсета. повидимому это описка или нет? о каком рекордсете (recordset) идет речь? Да какая разница, как назвать. Рекордсет, датасет, резалтсет - неважно. Набор записей, возвращаемый хранимой процедурой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:08 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
вот код (это пример) Код: plaintext 1. 2. 3. 4. 5. 6. 7. что еще неясного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:39 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
*терпеливо* Вот строчку профайлера "exec бла-бла-бла" надо получить программно. В строковой переменной, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:45 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
а нафиг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 11:53 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
winsky!а нафиг? а там выше написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 12:22 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
вот это что ли: получить на сервере дубликат рекордсета а нафиг? и причем здесь клиент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 12:26 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
winsky!вот это что ли: получить на сервере дубликат рекордсета а нафиг? и причем здесь клиент? Объясни мне - что ты хочешь от меня услышать? Клиент получает некий рекордсет. Мне необходимо получить дубликат этого рекордсета на сервере. Все, ничего сверъестественного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 13:10 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
объясняю: меня распирает от любопытства: нафига такое нужно (кроме проичины ХОЧУ ПОЛУЧИТЬ НА СЕРВЕРЕ должна быть еще какая-то причина)? т.е. перефразируя, зачем дубликат на сервере и в виде чего он должен на сервере появиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 13:43 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
Прекрасно, объясняю. Пользователь, нажимая кнопки, получает некий рекордсет. Хочет сей рекордсет сгруппировать, говоря по-нашему - применить к нему аггрегатные функции. Чтобы не делать этого силами клиента, я получаю копию рекордсета на сервере, группирую, как надо, и отдаю довольному клиенту. Дешево и сердито. Кстати, все уже готово ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 14:26 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
попахивает каким-то извратом и велосипедостроением, но это мое имхо, может в и сваяли что-то из ряда вон, настаивать не буду просто неужели этот ваш рекордсет (бедем пользоваться этим термином, раз уж так пошло) такой непредсказуемый, что нельзя его агрегировать более удобоваримым способом, т.е. не делая следующего: 1. гоним на клиента неагрегированные данные 2. каким-то образом(кстати, каким?) повторяем эти данные на сервере + храним их до того момента пока юзверь на клиенте решит, как он их хочет заагрегировать 3. шлем от юзера описание как он это хочет 4. на сервере чего-то шаманим с хранящимся рекордсетом, получаем новый рекордсет 5. шлем новый рекордсет пользователю сделать вот такое - 1. узнать на клиенте чего хочет юзер (например хочу продажи с группировкой по филиалам, клиентам, фильтр - менеджер Пупкин) 2. агрегировать на сервере и вернуть один рекордсет зы еще есть такая штука - ОЛАП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 14:55 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
авторпопахивает каким-то извратом и велосипедостроением Может быть, однако в рамках моего программного продукта реализация заняла ровно 1 день. автор1. гоним на клиента неагрегированные данные Мы их туда не просто так гоним. Мы гоним те данные, которые запросил пользователь. Со своими фильтрами. Все эти данные возвращаются хранимками. автор2. каким-то образом(кстати, каким?) повторяем эти данные на сервере + храним их до того момента пока юзверь на клиенте решит, как он их хочет заагрегировать Мы храним не данные, мы храним строку exec нужного нам набора данных. Соответственно в этом exec уже есть все фильтры и т.д. Когда нам нужно, на сервер посылается этот exec и во временную таблицу пишется дубликат рекордсета. автор3. шлем от юзера описание как он это хочет собирается элементарное xml-описание, слава богу OPENXML еще никто не отменял. автор4. на сервере чего-то шаманим с хранящимся рекордсетом, получаем новый рекордсет Всего-то шаманств - на полученную темповую табличку навесить аггрегацию. авторсделать вот такое - 1. узнать на клиенте чего хочет юзер (например хочу продажи с группировкой по филиалам, клиентам, фильтр - менеджер Пупкин) 2. агрегировать на сервере и вернуть один рекордсет Щас посчитаем. В базе 18 документов, списки каждого документа возвращаются своей ХП, которая обрабатывает пользовательские условия фильтрации. Вы предлагаете написать еще 18 процедур аггрегации? А так - написана 1 процедура. И некое количество кода. авторзы еще есть такая штука - ОЛАП Нет необходимости пока стрелять из пушки по воробьям. Как тут картинку приконопатить? Возможно из скриншота многое станет более ясным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 15:15 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
Собственно вот. Список на заднем плане - перечень заказов, уже отфильтрованных по желанию пользователя. Передний план: слева - перечень столбцов и накладываемые условия группировки, справа - полученный итог. Что получили - пользовательскую аггрегацию как ему хочется. От чего избавились - от отчаянных звонков "срочно нужна такая-то сводка". На дизайн не обращайте внимания, дизайнер из меня как из козла балерина. Конструктивная критика только приветствуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 15:26 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
ок. ладно сдаюсь главное в нашей работе, чтобы пользователи были довольны, как я понимаю, вы этого добились. кста - как удалось выцепить строку exec - просто интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 15:34 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
авторкста - как удалось выцепить строку exec - просто интересно )) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 15:38 |
|
||
|
Полный текст объекта Command
|
|||
|---|---|---|---|
|
#18+
а если prm.Value.GetType() not in (Decimal,Boolean,DateTime,String) может авария получится ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2007, 16:21 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34295558&tid=1352965]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 375ms |

| 0 / 0 |
