diff --git a/Demo/WebDemo/Publish/Resources/config.json b/Demo/WebDemo/Publish/Resources/config.json
index 158cbe6197218faac257dafcb7e4c79283a8a6d7..9a0062cdbc25586b6983770d98370aeb9ff11dce 100644
--- a/Demo/WebDemo/Publish/Resources/config.json
+++ b/Demo/WebDemo/Publish/Resources/config.json
@@ -67,8 +67,21 @@
"POOL_CleanupTimeout": "30000",
"POOL_ExpireTimeout": "90000",
"POOL_MaximumItems": "50"
- },
-
+ },
+ "db4": {
+ "DriverID": "PG",
+ "Server": "127.0.0.1",
+ "Port": "5432",
+ "Database": "test",
+ "User_Name": "postgres",
+ "Password": "postgres",
+ "CharacterSet": "utf8",
+ "Compress": "False",
+ "Pooled": "True",
+ "POOL_CleanupTimeout": "30000",
+ "POOL_ExpireTimeout": "90000",
+ "POOL_MaximumItems": "50"
+ },
"db5": {
"DriverID": "Ora",
"CharacterSet": "UTF8",
diff --git a/Demo/WebDemo/Publish/WebRoot/view/main/main.html b/Demo/WebDemo/Publish/WebRoot/view/main/main.html
index 680fce78644f1702e0f7979da2d1112ac7156e8f..bfb047e33dc347f10c6ba7d199cd7d198bdcd2ac 100644
--- a/Demo/WebDemo/Publish/WebRoot/view/main/main.html
+++ b/Demo/WebDemo/Publish/WebRoot/view/main/main.html
@@ -29,7 +29,7 @@
开发手册
-
+
退出
@@ -96,7 +96,15 @@
layui.element.render();
}
-
+ function Logout() {
+ layui.use('layer', function () {
+ layer = layui.layer;
+ layer.confirm('确定要退出登录?', { icon: 3, title: '提示' }, function (index) {
+ window.location = "__APP__/login";
+ layer.close(index);
+ });
+ });
+ }
diff --git a/MVC5.0/SDK/MVC.DB.pas b/MVC5.0/SDK/MVC.DB.pas
index ab0ba003881a8ee2134f5b4bc0e8376bf65fbd74..c7fa70a1da57748a34cd6fd6be4b5f569f64140f 100644
--- a/MVC5.0/SDK/MVC.DB.pas
+++ b/MVC5.0/SDK/MVC.DB.pas
@@ -42,7 +42,7 @@ type
procedure SetOverTime(const Value: TDateTime);
function PageMySql(sql: ISQL; pNumber, pSize: Integer): IDataSet;
function PageSqlite(sql: ISQL; pNumber, pSize: Integer): IDataSet;
-
+ function PagePostgreSQL(sql: ISQL; pNumber, pSize: Integer): IDataSet;
function PageMSSQL08(sql: ISQL; pNumber, pSize: Integer): IDataSet;
function PageMSSQL12(sql: ISQL; pNumber, pSize: Integer): IDataSet;
function PageMSSQL(sql: ISQL; pNumber, pSize: Integer): IDataSet;
@@ -547,6 +547,35 @@ begin
end;
end;
+function TDBItem.PagePostgreSQL(sql: ISQL; pNumber, pSize: Integer): IDataSet;
+var
+ sq: string;
+ count: integer;
+ dataset: IDataSet;
+begin
+ dataset := nil;
+ if (not TryConn) or (Trim(sql.getSelect) = '') or (Trim(sql.getFrom) = '') then
+ Exit;
+ try
+ try
+ sq := 'select count(1) as N' + sql.getFrom;
+ sq := filterSQL(sq);
+ count := Conn.ExecSQLScalar(sq);
+ sq := sql.getSelect + sql.getFrom + ' ' + sql.getOrder + ' limit ' + inttostr(pNumber * pSize) + ',' + inttostr(pSize);
+ dataset := Query(sq);
+ dataset.setCount(count);
+ except
+ on e: Exception do
+ begin
+ log('SQL执行异常:' + e.Message + '-' + sq);
+ Result := nil;
+ end;
+ end;
+ finally
+ Result := dataset;
+ end;
+end;
+
function TDBItem.PageMSSQL08(sql: ISQL; pNumber, pSize: Integer): IDataSet;
var
sq, order: string;
diff --git a/MVC5.0/SDK/MVC.DM.pas b/MVC5.0/SDK/MVC.DM.pas
index dc3c2873accde0f077bce01964cd4626b66a82e3..cba4cea53e9d210c72b3bd8bfc6f917bf90201f4 100644
--- a/MVC5.0/SDK/MVC.DM.pas
+++ b/MVC5.0/SDK/MVC.DM.pas
@@ -19,7 +19,7 @@ uses
System.SysUtils, FireDAC.Stan.ExprFuncs, FireDAC.Phys.SQLiteDef,
FireDAC.Phys.SQLite, FireDAC.Phys.OracleDef, FireDAC.Phys.MSSQLDef,
FireDAC.Phys.ODBCBase, FireDAC.Phys.MSSQL, FireDAC.Phys.Oracle,
- FireDAC.Phys.FBDef,
+ FireDAC.Phys.FBDef, FireDAC.Phys.PGDef, FireDAC.Phys.PG,
// {$IFDEF VER340}FireDAC.Phys.SQLiteWrapper.Stat, {$ENDIF}
// {$IFDEF CONSOLE} FireDAC.ConsoleUI.Wait, {$ENDIF}
// {$IFDEF SERVICE} FireDAC.ConsoleUI.Wait, {$ENDIF}
@@ -30,6 +30,7 @@ uses
type
TMVCDM = class
MySQLDriver: TFDPhysMySQLDriverLink;
+ PgDriver: TFDPhysPgDriverLink;
DBManager: TFDManager;
SQLiteDriverLink1: TFDPhysSQLiteDriverLink;
OracleDriverLink1: TFDPhysOracleDriverLink;
@@ -56,6 +57,7 @@ constructor TMVCDM.Create();
begin
DBManager := TFDManager.Create(nil);
MySQLDriver := TFDPhysMySQLDriverLink.Create(nil);
+ PgDriver := TFDPhysPgDriverLink.Create(nil);
SQLiteDriverLink1 := TFDPhysSQLiteDriverLink.Create(nil);
OracleDriverLink1 := TFDPhysOracleDriverLink.Create(nil);
MSSQLDriverLink1 := TFDPhysMSSQLDriverLink.Create(nil);
@@ -70,6 +72,7 @@ destructor TMVCDM.Destroy;
begin
DBManager.free;
MySQLDriver.free;
+ PgDriver.Free;
SQLiteDriverLink1.free;
OracleDriverLink1.free;
MSSQLDriverLink1.free;