GdcBase.TgdcBase.CheckTheSameStatement
SYSDBA (обсуждение | вклад) (Новая страница: «{{MethodDef_Template|unit={{#explode:{{PAGENAME}}|.|0}}|visibility=public|class={{#explode:{{PAGENAME}}|.|-2}}|method_type=function|src=function CheckTheSameStatemen…») |
SYSDBA (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
{{MethodDef_Template|unit={{#explode:{{PAGENAME}}|.|0}}|visibility=public|class={{#explode:{{PAGENAME}}|.|-2}}|method_type=function|src=function CheckTheSameStatement: String;}} | {{MethodDef_Template|unit={{#explode:{{PAGENAME}}|.|0}}|visibility=public|class={{#explode:{{PAGENAME}}|.|-2}}|method_type=function|src=function CheckTheSameStatement: String;}} | ||
| − | <onlyinclude>Возвращает запрос для поиска объекта.</onlyinclude> | + | <onlyinclude>Возвращает запрос для поиска объекта по потенциальному естественному ключу.</onlyinclude> Используется при загрузке объектов в базу данных из файла. Результат функции зависит от состояния бизнес-объекта: |
| + | |||
| + | ====Active = False==== | ||
| + | |||
| + | Если метод перекрыт, то возвращается параметризованный запрос. Наименования параметров совпадают с наименованиями полей в таблицах. Пример поиска товара сначала по штрихкоду и затем по наименованию без учета регистра: | ||
| + | |||
| + | SELECT id FROM gd_good | ||
| + | WHERE | ||
| + | (:barcode IS NOT NULL AND :barcode = barcode) | ||
| + | OR | ||
| + | (:barcode IS NULL AND barcode IS NULL AND UPPER(name)=UPPER(:name)) | ||
| + | |||
| + | Если метод не перекрыт, то вызывается TgdcBase.CheckTheSameStatement, который вернет пустую строку. | ||
| + | |||
| + | ====Active = True, EOF = True==== | ||
| + | |||
| + | Возвращает пустую строку. | ||
| + | |||
| + | ====Active = True, EOF = False, ID < 147000000==== | ||
| + | |||
| + | Возвращает запрос для поиска стандартного объекта по его идентификатору: | ||
| + | |||
| + | SELECT id FROM some_table WHERE id = rec_id_is_here | ||
| + | |||
| + | ====Active = True, EOF = False, ID >= 147000000==== | ||
| + | |||
| + | Если метод перекрыт, то возвращается '''не параметризованный''' запрос, в котором непосредственно прописаны значения полей из текущей записи. Пример запроса для поиска товара по наименованию: | ||
| + | |||
| + | SELECT id FROM gd_good WHERE UPPER(name) = UPPER('Наименование товара') | ||
| + | |||
| + | ====Правила поиска объектов==== | ||
| + | |||
| + | {| border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;" | ||
| + | !style="background:#ffdead;" width="120px"| Класс | ||
| + | !style="background:#ffdead;" width="120px"| Наименование | ||
| + | !style="background:#ffdead;" | Правило поиска | ||
| + | |- | ||
| + | | TgdcAcctAccount || Счет, субсчет || По номеру (alias) в пределах плана счетов, определяемого через поле parent. | ||
| + | |- | ||
| + | | TgdcGood || ТМЦ || По штрих-коду. Если ШК не задан, то по наименованию, без учета регистра. | ||
| + | |} | ||
| + | |||
| + | ====См. также==== | ||
| + | |||
| + | * [http://en.wikipedia.org/wiki/Candidate_key Потенциальный ключ] | ||
| + | |||
| + | |||
| + | __NOTOC__ | ||
Версия 17:08, 4 сентября 2013
From GdcBase.pas
function CheckTheSameStatement: String;
Unit: GdcBase
Type: function
Visibility: public
Member Of: TgdcBase
Описание
Возвращает запрос для поиска объекта по потенциальному естественному ключу. Используется при загрузке объектов в базу данных из файла. Результат функции зависит от состояния бизнес-объекта:
Active = False
Если метод перекрыт, то возвращается параметризованный запрос. Наименования параметров совпадают с наименованиями полей в таблицах. Пример поиска товара сначала по штрихкоду и затем по наименованию без учета регистра:
SELECT id FROM gd_good WHERE (:barcode IS NOT NULL AND :barcode = barcode) OR (:barcode IS NULL AND barcode IS NULL AND UPPER(name)=UPPER(:name))
Если метод не перекрыт, то вызывается TgdcBase.CheckTheSameStatement, который вернет пустую строку.
Active = True, EOF = True
Возвращает пустую строку.
Active = True, EOF = False, ID < 147000000
Возвращает запрос для поиска стандартного объекта по его идентификатору:
SELECT id FROM some_table WHERE id = rec_id_is_here
Active = True, EOF = False, ID >= 147000000
Если метод перекрыт, то возвращается не параметризованный запрос, в котором непосредственно прописаны значения полей из текущей записи. Пример запроса для поиска товара по наименованию:
SELECT id FROM gd_good WHERE UPPER(name) = UPPER('Наименование товара')
Правила поиска объектов
| Класс | Наименование | Правило поиска |
|---|---|---|
| TgdcAcctAccount | Счет, субсчет | По номеру (alias) в пределах плана счетов, определяемого через поле parent. |
| TgdcGood | ТМЦ | По штрих-коду. Если ШК не задан, то по наименованию, без учета регистра. |
См. также