Получение первых 100 записей из таблицы в базе данных Progress OpenEdge (например, SELECT TOP 100 ..) - PullRequest
5 голосов
/ 07 октября 2011

Как я могу получить ограниченное количество записей из таблицы в базе данных Progress OpenEdge?

Что-то вроде в SQL:

SELECT TOP 100 * FROM MyTable

Единственное уродливое решение, которое я могу найти, - это циклическое прохождениевсе записи и взлом, когда 100 из них были показаны.Но кажется, что должен быть какой-то лучший способ сделать это.

Ответы [ 4 ]

9 голосов
/ 08 октября 2011

Если вы используете 4GL, возможно, вы захотите использовать OPEN QUERY и MAX-ROWS, чтобы достичь желаемого результата. Ниже показан традиционный цикл FOR EACH со счетчиком, а затем QUERY с MAX-ROWS:

define variable i as integer no-undo.
define frame a with 10 down.

for each customer no-lock break by name:
  i = i + 1.
  display i custNum name discount.
  if i >= 5 then leave.
end.

define query q for customer scrolling.

open query q for each customer no-lock break by name max-rows 5.

do i = 1 to 5 with frame a:
  get next q.
  display i custNum name discount.
end.
6 голосов
/ 07 октября 2011

Если вы используете движок SQL-92, то что-то вроде:

SELECT TOP 100 FR pub.customer;

должно работать просто отлично.

Если вы используете движок 4GL, вам не следует пытаться смешивать SQL с 4GL.Это приведет только к боли, страданию и мукам.4GL это не SQL.Есть несколько операторов SQL-89, которые были введены в 4GL давным-давно по маркетинговым причинам.Попытка использовать их приведет к серьезной эмоциональной травме.Вы были предупреждены.

0 голосов
/ 22 июня 2017

ОПРЕДЕЛИТЬ ПЕРЕМЕННЫЕ, КАК ИНТЕГЕР НЕТ-ОТМЕНИТЬ.

ДЛЯ КАЖДОГО клиента NO-LOCK с шириной 320:

ASSIGN i = i + 1.

если i <= 100, то DISP CustNum Адрес Баланс Город Контакт Страна CreditLimit Скидка <br>Имя Телефон PostalCode SalesRep State Условия.

END.

0 голосов
/ 07 октября 2011

Пожалуйста, перейдите по ссылке, чтобы скачать файл. Надеясь, что вопрос ответит на него База данных OpenEdge

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...