View previous topic :: View next topic |
Author |
Message |
Балуев Максим
Joined: 19 Sep 2003 Posts: 21 Location: Балуев Occupation: Мобил-Экспресс (программист) Interests: Кемерово
|
Posted: 26 Sep 2005 14:20 Post subject: Apollo SQL |
|
|
Доброго дня!
Просьба к тем, кто работал с Apollo SQL.
Киньте сюды пример использования: как подсоединиться,
как формировать запрос, как работать с результатами.
Заранее благодарю всех кто откликнул |
|
Back to top |
|
|
shura_k
Joined: 10 Oct 2003 Posts: 342 Location: Александр Occupation: Специалист Interests: Калининград
|
Posted: 26 Sep 2005 16:04 Post subject: |
|
|
Примеры идут вместе с прогой, там всё понятно. |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 26 Sep 2005 17:03 Post subject: |
|
|
Объясните плз зачем Вы Apollo смотрите - ведь от него отказались.
В 12 версии его уже нет - там ADS SQL |
|
Back to top |
|
|
Балуев Максим
Joined: 19 Sep 2003 Posts: 21 Location: Балуев Occupation: Мобил-Экспресс (программист) Interests: Кемерово
|
Posted: 27 Sep 2005 11:43 Post subject: |
|
|
nordk wrote: | Объясните плз зачем Вы Apollo смотрите - ведь от него отказались.
В 12 версии его уже нет - там ADS SQL |
Ох, извините не уследил.
То что, ADS SQL можно использовать в FastReport - это понятно.
А можно ли использовать ADS SQL при написании программ на HFileEval? |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 27 Sep 2005 12:27 Post subject: |
|
|
Тут подход должен быть следующим.
Средствами харбора вы создаете нужную для отчета
таблицу и затем применительно к ней вызываете
фастрепорт для посторения отчета - внутри фаст-репорта
в дизайнере вы можете использовать SQL запросы
в источниках данных.....так мне видится э |
|
Back to top |
|
|
Балуев Максим
Joined: 19 Sep 2003 Posts: 21 Location: Балуев Occupation: Мобил-Экспресс (программист) Interests: Кемерово
|
Posted: 29 Sep 2005 14:23 Post subject: |
|
|
У меня проблема с ADS SQL в FastReport.
Мне необходимо формировать запрос динамически на
функцию OnClick кнопки. Проблема с датой.
Если работать с цифрами, то все работает:
Quote: | begin
DialogForm.Query1.Active := False;
DialogForm.Query1.SQL.Clear;
DialogForm.Query1.SQL.Add('Select a.NumDoc ');
DialogForm.Query1.SQL.Add('From [Zapas\mdoc] as a ');
DialogForm.Query1.SQL.Add('Where (a.SumOut > :Param1) and (a.SumOut < :Param2) ');
DialogForm.Query1.Params['Param1'] := 19000;
DialogForm.Query1.Params['Param2'] := 20000;
DialogForm.Query1.Active := True;
end |
А если переделать на дату, то не работает:
Quote: | begin
DialogForm.Query1.Active := False;
DialogForm.Query1.SQL.Clear;
DialogForm.Query1.SQL.Add('Select a.NumDoc ');
DialogForm.Query1.SQL.Add('From [Zapas\mdoc] as a ');
DialogForm.Query1.SQL.Add('Where (a.Date > :Param1) and (a.Date < :Param2) ');
DialogForm.Query1.Params['Param1'] := DialogForm.BegPer.Date;
DialogForm.Query1.Params['Param2'] := DialogForm.EndPer.Date;
DialogForm.Query1.Active := True;
end |
|
|
Back to top |
|
|
Alexander Tarasov
Joined: 02 Feb 2005 Posts: 3 Location: Тарасов Александр Occupation: Компания "БЭСТ" Interests: Москва
|
Posted: 29 Sep 2005 18:00 Post subject: |
|
|
Code: | DialogForm.Query1.Params['Param1'] := '1999-01-01';
DialogForm.Query1.Params['Param2'] := '2001-01-01'; |
|
|
Back to top |
|
|
grey
Joined: 12 Jan 2004 Posts: 297 Location: Родионов С.Г. Occupation: ООО Бухгалтер, программист Interests: Набережные Челны
|
Posted: 29 Sep 2005 18:32 Post subject: |
|
|
Балуев Максим wrote: | begin
DialogForm.Query1.Active := False;
DialogForm.Query1.SQL.Clear;
DialogForm.Query1.SQL.Add('Select a.NumDoc ');
DialogForm.Query1.SQL.Add('From [Zapas\mdoc] as a ');
DialogForm.Query1.SQL.Add('Where (a.Date > :Param1) and (a.Date < :Param2) ');
DialogForm.Query1.Params['Param1'] := DialogForm.BegPer.Date;
DialogForm.Query1.Params['Param2'] := DialogForm.EndPer.Date;
DialogForm.Query1.Active := True;
end |
Надо в строку преобразовать, например
FormatDateTime('DD"/"MM"/"YYYY',DialogForm.EndPer.Date ) _________________ http://grey-soft.narod.ru - примочки к программам серии БЭС |
|
Back to top |
|
|
Alexander Tarasov
Joined: 02 Feb 2005 Posts: 3 Location: Тарасов Александр Occupation: Компания "БЭСТ" Interests: Москва
|
Posted: 29 Sep 2005 19:48 Post subject: |
|
|
Quote: | FormatDateTime('DD"/"MM"/"YYYY',DialogForm.EndPer.Date ) |
такой формат тоже работает. Вот что пишут в help ADS по этому поводу
Quote: | Date
A string literal with either the ANSI date format 'YYYY-MM-DD' or the default date format specified in your application via the "set date format" operation. With the Advantage Client Engine API or Advantage OLE DB Provider, the date format for an application can be specified via the AdsSetDateFormat API. With Advantage TDataSet Descendant applications, the date format for an application can be specified via the TAdsSettings.DateFormat property. If the ANSI style format (YYYY-MM-DD) and the format specified through the client's "set date format" operation are ambiguous, the ANSI format is assumed. For example, if the client format was 'YYYY-DD-MM', the date '1999-01-22' will be interpreted as January 22, 1999. |
Дополнительную информацию можно получить в следующих файлах:
Как работать с датами описано:
Пункт меню О программе - Инструкции и комментарии к БЭСТ-4 +
Далее раздел справки "Печать в Windows-формате - Создание дополнительных источников - Правила написания SQL"
Кроме этого в пункте меню О программе - Инструкции и комментарии к БЭСТ-4 +
Далее раздел справки "Печать в Windows-формате - Создание дополнительных источников - Общие сведения об Advantage SQL"
Файл справки по Advantage SQL (на английском языке) Advantage.hlp расположен в подкаталоге News каталога установленной системы БЭСТ-4+. |
|
Back to top |
|
|
Балуев Максим
Joined: 19 Sep 2003 Posts: 21 Location: Балуев Occupation: Мобил-Экспресс (программист) Interests: Кемерово
|
Posted: 30 Sep 2005 12:59 Post subject: |
|
|
Да действительно нужен другой формат даты:
Quote: | DialogForm.Query1.Params['Param1'] := [FORMATDATETIME('yyyy-mm-dd', [DialogForm.BegPer.Date])];
DialogForm.Query1.Params['Param2'] := [FORMATDATETIME('yyyy-mm-dd', [DialogForm.EndPer.Date])]; |
Огромное СПАСИБО! Все работает. |
|
Back to top |
|
|
Балуев Максим
Joined: 19 Sep 2003 Posts: 21 Location: Балуев Occupation: Мобил-Экспресс (программист) Interests: Кемерово
|
Posted: 04 Oct 2005 13:49 Post subject: |
|
|
Господа РАЗРАБОТЧИКИ!
А каковы Ваши ставки на ADS SQL?
Сделал я отчет в FastReport - запрос c группировкой (mdoc, mdocm).
В FoxPro этот же запрос обрабатывается менее секунды. В FastReport -
1 мин 23 сек. Размер mdoc - 3441 запись, mdocm - 5821.
А если размер файлов несколько тысяч записей? Как поведет себя ADS SQL?
И что, подготавливать файлы в HFileEval банальным перебором (... я думаю будет работать быстрее). |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 04 Oct 2005 14:08 Post subject: |
|
|
А вы через HfileEval выборку сделайте и потом в фаст-репорт киньте табличк |
|
Back to top |
|
|
Олег Смирнов
Joined: 06 Sep 2004 Posts: 821 Location: Олег Смирнов Occupation: Раут (поганист-сисадмин) Interests: Новосибирск
|
Posted: 04 Oct 2005 14:40 Post subject: |
|
|
Балуев Максим wrote: | И что, подготавливать файлы в HFileEval банальным перебором (... я думаю будет работать быстрее). |
Будешь смеяться, но: часто банальный полный перебор базы оказывается весьма эффективным способом... И не только для .DBF, но и для SQL-серверов. _________________ С уважением, Олег Р. Смирн |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 04 Oct 2005 17:21 Post subject: |
|
|
Если надо все записи анализировать - тогда для DBF полезно еще и индексы отключать а если надо часть выбрать - то скоп очень полезен по индексу против простого перебор |
|
Back to top |
|
|
Олег Смирнов
Joined: 06 Sep 2004 Posts: 821 Location: Олег Смирнов Occupation: Раут (поганист-сисадмин) Interests: Новосибирск
|
Posted: 04 Oct 2005 19:04 Post subject: |
|
|
nordk wrote: | если надо часть выбрать - то скоп очень полезен по индексу против простого перебора |
А это смотря по тому, насколько велика выбираемая часть... И если эта самая выбираемая часть относительно велика - полный перебор лучше...
P.S. Хочу уточнить - полный перебор лучше не по моему личному предвзятому мнению - а по результатам тестирования независимыми группами экспертов. Ведь выборка по индексам - это тоже ресурсоёмкий процесс - и если в выборку попадает 15-20% всех записей базы - полный перебор уже быстрее...
В таком вот аспекте... _________________ С уважением, Олег Р. Смирн |
|
Back to top |
|
|
|