--- parser3/operators.ru.txt 2002/04/09 06:47:05 1.31 +++ parser3/operators.ru.txt 2002/06/10 14:37:35 1.42 @@ -231,7 +231,7 @@ odbc c:\drives\y\parser3project\odbc\ !^имя.div(на сколько /) !^имя.mod(на сколько %) !^имя.format[формат] - !^int/double:sql{query}[[$.limit(2) $.offset(4) $.default(0)]] + !^int/double:sql{query}[[$.limit(2) $.offset(4) $.default{0}]] запрос, результат которого должен быть один столбец/одна строка !string @@ -243,7 +243,7 @@ odbc c:\drives\y\parser3project\odbc\ пример: ^if(def $form:name) не пуста? ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?] - !^string::sql{query}[[$.limit(2) $.offset(4) $.default[n/a]]] + !^string::sql{query}[[$.limit(2) $.offset(4) $.default{n/a}]] результат запроса должен быть один столбец/одна строка !^имя.int[] .int(default) целочисленное значение строки. если ломается преобразование, берётся default @@ -283,7 +283,7 @@ odbc c:\drives\y\parser3project\odbc\ !^table::load[[nameless;]путь] !если не nameless, названия колонок берутся из первой строки !пустые строки, и строки в первой колонке содержащие '#', игнорируются - !^table::sql{query}[[$.limit(2) $.offset(4)]] + !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]] !^таблица.save[[nameless|append;]путь] !$таблица.поле !$таблица.fields+ из named таблицы выдаёт текущую запись как Hash @@ -309,9 +309,9 @@ odbc c:\drives\y\parser3project\odbc\ значением $hash.ключ будет hash в котором поля значений будут ключами поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой !^таблица.columns[]+ таблица из одного столбца $column - $отфильтрованное[^таблица.filter(выражение)] - $adults[^man.filter($man.age>=18)] - + !$отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало + $adults[^man.select($man.age>=18)] + ^таблица.color[цвет1;цвет2] !hash @@ -331,7 +331,7 @@ odbc c:\drives\y\parser3project\odbc\ !^a.intersection[b] = пересечение значения a !^a.intersects[b] = bool - !^hash::sql{запрос}[[$.limit(2) $.offset(4)]] + !^hash::sql{запрос}[[$.limit(2) $.offset(4) todo:$.default{$.field[]...}]] получается hash(ключи=значения первая колонка ответа) of hash(ключи=названия остальных колонкок ответа) !^hash._keys[]+ таблица из одного столбца $key @@ -560,7 +560,10 @@ Xhashfile !^date::create(year;month[;day[;hour[;minute[;second]]]]) // старое имя set ^date::sql-create[дата в формате %Y-%m-%d %H:%M:%S] для удобного создания по значению из базы - !$date.year month day hour minute second weekday read-only + формат1: %Y[-%m[-%d[ %H[:%M[:%S]]]]] + формат2: %H:%M[:%S] + !$date.year month day hour minute second weekday todo:yearday + read-only !^date.roll[year|month|day](+-смещение) сдвигает дату !^date.sql-string[] %Y-%m-%d %H:%M:%S where published='$дата.sql-string[]' @@ -616,6 +619,7 @@ xdoc(xnode) !cdata-section-elements = qnames !indent = "yes" | "no" !media-type = string /> + !параметры передаются как есть, не xpath выражения !.string[output options] !.save[file.xml;output options] с шапкой @@ -815,6 +819,7 @@ xdoc(xnode) !parser.runtime ^if(0). параметры (больше/меньше, чем нужно, не тех типов, ...) !number.zerodivision ^eval(1/0) ^eval(1%0) !number.format ^eval(abc*5) + !file.lock shared/exclusive lock error !file.missing ^file:delete[delme] not found !file.access ^table::load[.] no rights !image.format ^image::measure[index.html] not gif/jpg