UNPKG

jaydata-sqlite

Version:

Cross-platform HTML5 data-management, JavaScript Language Query (JSLQ) support for OData, SQLite, WebSQL, IndexedDB, YQL and Facebook (packaged for Node.JS)

40 lines (38 loc) 1.64 kB
$C('$data.sqLite.SqlOrderCompiler', $data.Expressions.EntityExpressionVisitor, null, { constructor: function (provider) { this.provider = provider; }, compile: function (expression, sqlBuilder) { this.Visit(expression, sqlBuilder); }, VisitEntitySetExpression: function (expression, sqlBuilder) { /// <param name="expression" type="$data.Expressions.EntitySetExpression"></param> /// <param name="sqlBuilder" type="$data.sqLite.SqlBuilder"></param> var alias = sqlBuilder.getExpressionAlias(expression); sqlBuilder.addText(alias); sqlBuilder.addText(SqlStatementBlocks.nameSeparator); }, VisitOrderExpression: function (expression, sqlBuilder) { this.Visit(expression.selector, sqlBuilder); if (expression.nodeType == $data.Expressions.ExpressionType.OrderByDescending) { sqlBuilder.addText(" DESC"); } else { sqlBuilder.addText(" ASC"); } }, VisitParametricQueryExpression: function (expression, sqlBuilder) { this.Visit(expression.expression, sqlBuilder); }, VisitEntityFieldExpression: function (expression, sqlBuilder) { this.Visit(expression.source, sqlBuilder); this.Visit(expression.selector, sqlBuilder); }, VisitMemberInfoExpression: function (expression, sqlBuilder) { sqlBuilder.addText(expression.memberName); }, VisitComplexTypeExpression: function (expression, sqlBuilder) { this.Visit(expression.source, sqlBuilder); this.Visit(expression.selector, sqlBuilder); sqlBuilder.addText('__'); } });