mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-27 23:06:01 +00:00
table grid display, SQL for browse table is generated on FE
This commit is contained in:
5
packages/datalib/src/GridDisplay.ts
Normal file
5
packages/datalib/src/GridDisplay.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import {Select} from '@dbgate/sqltree'
|
||||
|
||||
export default abstract class GridDisplay {
|
||||
abstract getPageQuery(offse: number, count: number): string;
|
||||
}
|
||||
20
packages/datalib/src/TableGridDisplay.ts
Normal file
20
packages/datalib/src/TableGridDisplay.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import GridDisplay from "./GridDisplay";
|
||||
import { Select } from "@dbgate/sqltree";
|
||||
import { TableInfo, EngineDriver } from "@dbgate/types";
|
||||
|
||||
export default class TableGridDisplay extends GridDisplay {
|
||||
constructor(public table: TableInfo, public driver: EngineDriver) {
|
||||
super();
|
||||
}
|
||||
|
||||
getPageQuery(offset: number, count: number) {
|
||||
const select = new Select();
|
||||
if (this.driver.dialect.limitSelect) select.topRecords = count;
|
||||
if (this.driver.dialect.rangeSelect)
|
||||
select.range = { offset: offset, limit: count };
|
||||
select.from = this.table;
|
||||
select.selectAll = true;
|
||||
const sql = select.toSql(this.driver);
|
||||
return sql;
|
||||
}
|
||||
}
|
||||
2
packages/datalib/src/index.ts
Normal file
2
packages/datalib/src/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export { default as GridDisplay } from "./GridDisplay";
|
||||
export { default as TableGridDisplay } from "./TableGridDisplay";
|
||||
Reference in New Issue
Block a user