Вопрос № 59319: Добрый день уважаемые эксперты.
Суть проблемы такова: есть компоненты - Degisy Data (http://www.degisy.com/degisy-data.php), работая с базой paradox фильтрую данные в таблице DsPdxTable1 и по идее в переменной DsPdxTable1.RecordCount должн...Вопрос № 59357: Здравствуйте уважаемые эксперты!
Подскажите пожалуйста как производить SQL-запросы к базе данных. Я ее подключил используя ADO (используя MS OLE DB Provider for SQL Server - а сама база 1С). Вроде все отлично выводится в DBGrid, но вот как сделат...
Вопрос № 59.319
Добрый день уважаемые эксперты.
Суть проблемы такова: есть компоненты - Degisy Data (http://www.degisy.com/degisy-data.php), работая с базой paradox фильтрую данные в таблице DsPdxTable1 и по идее в переменной DsPdxTable1.RecordCount должно храниться количество отфильтрованных записей, а у меня почему-то количество всех, фильтр стопроцентно включен, условия фильтра рабочие.
Отвечает: Baduin
Здравствуйте, Кулаков Антон Сергеевич /SandroNec!
я бы посоветовал попользоваться стандартными компонентами делфей с закладки bde. Здесь все очень просто, бросаем на форму query, подцепляем datasource и dbgrid. Затем делаем:
with query do begin
close;
sql.text:='select * from base where id<6';
execsql;
open;
end;
В query будут нужные записи, а через query.recordcount можно получить ПРАВИЛЬНОЕ кол-во записей.
p.s. фильтрация, насколько я знаю работает медленее, чем sql запросы. да и дополнительный компонент утяжелит exe-шник
Ответ отправил: Baduin (статус: 1-ый класс)
Ответ отправлен: 18.10.2006, 10:01 Оценка за ответ: 4
Отвечает: sir henry
Здравствуйте, Кулаков Антон Сергеевич /SandroNec!
Вы сильно ошиблись. В хелпе, по поводу RecordCount, написано:
"Indicates the total number of records associated with the dataset."
Что по-русски означает:
"Выводит общее количество записей в наборе данных".
Где же Вы увидели, что это свойство выводит только кол-во отфильтрованых записей?
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 18.10.2006, 10:12 Оценка за ответ: 3 Комментарий оценки: ошибся не ошибся, но попробуйте сами со стандартными компонентами, проверьте recordcount до фильтра и после того как его включили
Вопрос № 59.357
Здравствуйте уважаемые эксперты!
Подскажите пожалуйста как производить SQL-запросы к базе данных. Я ее подключил используя ADO (используя MS OLE DB Provider for SQL Server - а сама база 1С). Вроде все отлично выводится в DBGrid, но вот как сделать (всмысле, с помощью чего) sql-запрос и получить данные не знаю (может какие-то компоенты, но не "тянуть" все из DBGrid'a, так он вообще не будет использоваться). Подскажите как это сделать. Ссылки на маны только приветствуются.
Отправлен: 18.10.2006, 15:50
Вопрос задал: Koven (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Gh0stik
Здравствуйте, Koven!
Вы можете использовать компонент ADOQuery из вкладки ADO.
Далее "соединяете" компонент с ADOConnection примерно так: ADOQuery.Connection:=ADOConnection;
Потом Вам следует создать запрос (по такой схеме):
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(
'SELECT [название полей по которым ведеться выборка] FROM `название базы` '+
'WHERE [условие] '+
'GROUP BY [название полей по которым группируем, если это необходимо] ');
ADOQuery.Active:=true; //запускаем запрос
Все данные которые соответствуют текущему запросу будут находиться в ADOQuery.Fields[i].
Дальше я думаю Вы разбиретесь сами (если что-то не получаеться выходите на связь - задавайте дополнительные вопросы в мини-форум либо в личку...)
Удачи!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Практикант)
Ответ отправлен: 18.10.2006, 17:20 Оценка за ответ: 5 Комментарий оценки: Отлично! Спасибо! Буду разбираться!