Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/12: Рейтинг темы: голосов - 12, средняя оценка - 5.00
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224

Работа с MSSQL ч/з ADO и хранимки

09.11.2010, 16:13. Показов 2381. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, коллеги и все остальные.
Нужен Ваш добрый совет по следующему вопросу: есть ли в ADO механизмы, способные работать с базой посредством вызова разных хранимых процедур на сервере, реализованные в одном компоненте, наподобие такой как ADO.NET.

Или нужно работать ч/з ADOStoredProc, запрашивая select'ы и update'ы каждый раз явно вручную?

Заранее спасибо за конструктив...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.11.2010, 16:13
Ответы с готовыми решениями:

ADO+MSSQL работа с полем типа real
В таблице есть столбец формата real. При выводе его в Studio (sql запрос) выводит нормально , но при попытке вывести через ADO в своем...

Какую книгу лучше почитать по ASP, чтоб было и JScript и VBScript и ADO и работа с Access и с MsSQL
Какую книгу лучше почитать по ASP, чтоб было и JScript и VBScript и ADO и работа с Access и с MsSQL, вообщем всё, всё, всё :-))) Или...

ADO и MSSQL
Попытаюсь объяснить ситуацию. Есть сервер на который с определенной периодичностью поступают однотипные данные , которые триггерами...

11
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
09.11.2010, 17:22
1. Не вижу связи между ADOStoredProc и select'ами и update'ами
2. Что мешает использовать TADOQuery, прописывая в свойстве SQL стэйтмент типа
SQL
1
EXECUTE PROCEDURE MyProcedure...
0
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
09.11.2010, 22:42  [ТС]
Попробую переформулировать вопрос.
Использование Query нежелательно, т.к. стоит задача строго разграничить права юзерам, которых со временем может быть много. Было решено выбрать метод, при котором все операции будут делаться через хранимки на серваке. Думаю далее всё понятно... Раздача прав и бла-бла-бла )

Так вот в ADO.NET для такого подхода есть всё что нужно и инкапсулировано это в одном компоненте(забыл уже как называется, что-то вроде ADOCommand). А вот в ADO в StoredProc я ничего подобного не нашёл.

По-этому ещё разок вопрос: можно ли такой подход реализовать на ADO?
0
45 / 45 / 7
Регистрация: 28.05.2009
Сообщений: 87
10.11.2010, 10:38
обычно использовал хранимые процеуры в dbexpress но вот только что попробывал в ado. тоже самое

в компоненте ADOdataset в commandtype выбираем cmdStoredProc
затем в commandText выбираем имя хранимой процедуры, подставляем параметры вот вроде и все...

а вот по поводу ADOquery и прав пользователей... Ведь ADOquery использует соединение с БД adoConnection, которое логинется в БД под определенным пользователем. соответственно и все хранимые процедуры запущеные как написал SAMZ, будут выполняться под правами пользователя под каким был коннект к БД
1
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
10.11.2010, 11:06  [ТС]
Вопросы я формулирую ни к чёрту, по-этому попробую "на пальцах", может лучше получится:

1) Query не подходит, т.к. требуется дать права на таблицу, а мне нужно, чтобы user мог делать только то, что я ему разрешу и так, как мне это надо. Т.е. оптимально будет использовать хранимку.
2) Мне нужен компонент-потомок TDataSet, в котором была бы возможность назначить все 4-ре процедуры(select, update, delete и insert) одновременно, так как это сделано в ADO.NET.
Для чего? Для того, чтобы на клиенте (в приложении) работало правило 1 таблица --> 1 компонент для работы с ней. Иначе, чтобы использовать подход с ХП придётся все DML операции вызывать явно вручную да ещё и с помощью как минимум 4-х различных компонентов, позволяющих вызывать ХП. И получаемые данные обрабатывать тоже вручную, т.е. что-то вроде этого Edit1.Text := SPData.FieldByName('DATA').asString вместо того чтобы взять обычный DBEdit, подключить его к компоненту, обеспечивающему DML операции и не не думать о том, как синхронизировать данные на клиенте и на сервере.

Если опять коряво написал, не судите строго, коллеги. Очень жду Ваших советов и предложений
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
10.11.2010, 11:34
Цитата Сообщение от Чёрный Медведь Посмотреть сообщение
при котором все операции будут делаться через хранимки на серваке
А по - вашему вот это
SQL
1
EXECUTE PROCEDURE MyProcedure
где выполняется?
Цитата Сообщение от Чёрный Медведь Посмотреть сообщение
И получаемые данные обрабатывать тоже вручную, т.е. что-то вроде этого Edit1.Text := SPData.FieldByName('DATA').asString вместо того чтобы взять обычный DBEdit, подключить его к компоненту, обеспечивающему DML операции и не не думать о том, как синхронизировать данные на клиенте и на сервере
Да это просто каша какая-то! Что Вам мешает взять обычный DBEdit, подключить его к компоненту, обеспечивающему....?!
Добавлю к этому то, что мне известны очень опытные программеры, которые отвергают именно использование компонент прямого редактирования БД. Они предпочитают загружать данные в обычные едиты, редактировать и потом загружать и сохранять измения в БД.
1
45 / 45 / 7
Регистрация: 28.05.2009
Сообщений: 87
10.11.2010, 11:50
Цитата Сообщение от Чёрный Медведь Посмотреть сообщение
Мне нужен компонент-потомок TDataSet, в котором была бы возможность назначить все 4-ре процедуры(select, update, delete и insert) одновременно, так как это сделано в ADO.NET.
такое я встречал только в ado.net тут придется обходными путями (возможно через события beforinsert, befordelete и т.п. )
0
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
10.11.2010, 11:58  [ТС]
Цитата Сообщение от SAMZ Посмотреть сообщение
Да это просто каша какая-то! Что Вам мешает взять обычный DBEdit, подключить его к компоненту, обеспечивающему....?!
Очень мешает тот факт, что DBEdit один штука, а операций, которые надо через него реализовать - 4! И если прикреплённый к нему DataSet их все не инкапсулирует, то как бы труба дело.

Цитата Сообщение от SAMZ Посмотреть сообщение
Они предпочитают загружать данные в обычные едиты, редактировать и потом загружать и сохранять измения в БД
Вероятно так и придётся в итоге сделать, но на мой взгляд такой способ не очень гибкий и достаточно трудоёмкий.

Добавлено через 1 минуту
Цитата Сообщение от slayer Посмотреть сообщение
такое я встречал только в ado.net тут придется обходными путями (возможно через события beforinsert, befordelete и т.п. )
Похоже мысль донёс. Спасибо, это по теме

Добавлено через 4 минуты
Полагаю тему можно закрыть.
Отрицательный результат - тоже результат )
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
10.11.2010, 12:07
Цитата Сообщение от slayer Посмотреть сообщение
в котором была бы возможность назначить все 4-ре процедуры(select, update, delete и insert) одновременно
Такое есть и широко используется в компонентах FIBPlus, Но это только для FireBird/Interbase. Кроме того такая реализация есть в BDE компонентах при использовании TQuery в режиме CashedUpdate совместно с объектом UpdateSQL, но тут другая проблема: BDE сегодня не рекомендуется к употреблению!
0
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
10.11.2010, 12:18  [ТС]
Я и не планировал пользовать BDE. Да, такой подход я видел ещё в ODAC'е. Это очень удобно. Сейчас приходится юзать ADO, вот я и решил спросить нет ли такой вкусности и в них. Похоже, не судьба )). Всем спасибо за ответы
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
10.11.2010, 12:43
Чёрный Медведь, ну если вы уже знакомы с одаками, то почему бы не поюзать мсдаки? по наборам свойств и функций очень похож на другие ДАКи... и работать с ним одно удовольствие
1
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
10.11.2010, 12:54  [ТС]
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
Чёрный Медведь, ну если вы уже знакомы с одаками, то почему бы не поюзать мсдаки? по наборам свойств и функций очень похож на другие ДАКи... и работать с ним одно удовольствие
Это было бы очень удобно, но вот политика предприятия, в котором я чейчас работаю, ориентирована на ADO. К сожалению, никто не будет покупать DAC'и специально для меня, особенно если учесть, что все текущие проекты реализованы на ADO. Однако, за совет спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.11.2010, 12:54
Помогаю со студенческими работами здесь

ado + mssql
Для mssql доступны только sql заросы? или эта строчка должна быть характерна для всех БД ? ...

Поисковик в MSSQL, ADO
Всем привет! Есть компонент DBGrid1 в котором есть два столбца "Заказчик" и "Контактный телефон" Есть компоненты DataSource1,...

ADO.NET + MSSQL
Всем ку !! Коллеги , нужна помощь. Стыдно говорить , но завис на ровном месте . Как говорил наш незабвенный "Никогда такого не...

ADO + MSSQL + INSERT =
Сам запрос: ADOQuery10->Close(); ADOQuery10->SQL->Text = "INSERT INTO dbo.tbl_UserBan (,,,,,,,) VALUES ('"+Edit27->Text+"', GETDATE(),...

Генераторы в msSQL+ADO.NET+EntityFramework
Кто-нибудь работал с генераторами уникального ключа или встречал примеры?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru