| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Компоненты |
| Автор: DDX 13.3.2006, 18:08 |
| Здравствуйте! Задался я как-то такой задачкой: хочу сделать программу, которая будет выполнять на MS SQL Server заданные ей команды. но вот в чем загвоздка: как мне организовать её работу таким образом, чтобы было как например, в MS Query Analyzer. То есть, реагировать по-разному в зависимости от того, возвращает ли команда набор данных или нет . попробую объяснить Если вводится команда на изменение данных , то выводим, сколько записей изменилось это просто: adocommand.execute(var RecordsAffectedt:integer); если команда меняет серверные объекты, то выводим просто, успешно или нет. это тоже несложно но как мне объединить это с командами, возвращающими данные? Если вводится команда типа exec sp_who (то есть вызов хранимки, возрващающей некий набор даных) или просто запрос на выборку, то результаты выполнения возвращались бы в грид. По отдельности все это легко, но вот если я завожу датасет и пишу DataSource1.Dataset:=DataSet1; Grid.DataSource:=DataSource1; DataSet1.RecordSet:=adcom1.Execute(rc); то , если команда не возвращает набора данных, то я получаю ошибку "RecordSet not open". команда при этом выполнилась. Если данные возвращаются, то все в ажуре. Можно ли использовать один и тот же компонент и для команд, и для запросов? |
| Автор: DDX 14.3.2006, 20:52 |
| ок, рытьё в материалах ничего путного не дало.. пришлось сделать просто: если первое слово в запросе - select, то запускаю кверя, ежели нет - то команду |