Базы данных Visual Foxpro

         

Использование переменных при формировании запросов

При формировании выборки в программах вы можете использовать переменные для определения условий выборки и задания имени таблицы, в которую записываются результаты выборки.

Рассмотрим пример создания запроса, в котором определяется итоговая сумма по каждому заказу. За основу возьмем аналогичный


запрос, созданный ранее в интерактивном режиме. В него добавим возможность задания интервала, за который будет осуществляться выборка, а также имени результирующей таблицы.

  1. Откройте новое окно редактирования программы. Для этого в меню File (Файл) выберите команду New (Новый).
  2. В открывшемся диалоговом окне выберите опцию Program (Программа) и нажмите кнопку New file (Новый файл).
  3. Откройте окно созданного ранее запроса, содержащего выборку из таблиц Ordsalem и Ordsaled с итоговой суммой по каждому заказу.
  4. Нажмите кнопку Show the SQL Window (Показать SQL) на панели инструментов Query Designer (Конструктор запроса) или в меню Query (Запрос) выберите команду View SQL (Показать SQL).
  5. В окне просмотра выделите команду SELECT и сохраните ее во временном буфере Windows.
  6. Скопируйте содержимое буфера Windows в окно редактирования программы.
  7. Укажите перед командой SELECT начальную и конечную даты, определяющие промежуток времени, а также значение переменной, которая задает имя результирующей таблицы:

dBeg=CTOD("01.11.01") && начальная дата

dEnd=CTOD("30.11.01") && конечная дата

c0utput="0rds" && имя результирующей таблицы

  1. Добавьте в конструкцию SELECT условие задания периода времени, используя переменные dBeg и dEnd:

SELECT Ordsalem.cnDoc AS заказ,;

SUM(Ordsaled.nQuant*Ordsaled.nUnitPrice) AS стоимость;

FROM sales!ordsalem INNER JOIN saleslordsaled ;

ON Ordsalem.icdorder = Ordsaled.icdorder;

WHERE Ordsalem.dDoc BETWEEN dBeg AND dEnd;

GROUP BY Ordsalem.icdorder;

INTO TABLE ScOutput

  1. Сохраните программу под именем Ords.prg и проверьте синтаксис.
  2. Выполните программу, в результате чего в таблицу ords будет записана итоговая сумма по заказам. В дальнейшем вы можете использовать эту таблицу для просмотра, печати отчета или построения графика.

 

Содержание раздела