diff --git a/QuartzNetAPI/Host/Host.csproj b/QuartzNetAPI/Host/Host.csproj index d9188d1..1779175 100644 --- a/QuartzNetAPI/Host/Host.csproj +++ b/QuartzNetAPI/Host/Host.csproj @@ -38,7 +38,8 @@ - + + diff --git a/QuartzNetAPI/Host/Managers/SchedulerCenter.cs b/QuartzNetAPI/Host/Managers/SchedulerCenter.cs index 784c05c..dcca38f 100644 --- a/QuartzNetAPI/Host/Managers/SchedulerCenter.cs +++ b/QuartzNetAPI/Host/Managers/SchedulerCenter.cs @@ -84,6 +84,7 @@ private async Task InitDBTableAsync() //TODO 其他数据源... if (driverDelegateType.Equals(typeof(SQLiteDelegate).AssemblyQualifiedName) || driverDelegateType.Equals(typeof(MySQLDelegate).AssemblyQualifiedName) || + driverDelegateType.Equals(typeof(SqlServerDelegate).AssemblyQualifiedName) || driverDelegateType.Equals(typeof(PostgreSQLDelegate).AssemblyQualifiedName)) { IRepositorie repositorie = RepositorieFactory.CreateRepositorie(driverDelegateType, dbProvider); @@ -524,11 +525,11 @@ public async Task> GetAllJobBriefInfoAsync() jobInfo.JobInfoList.Add(new JobBriefInfo() { Name = jobKey.Name, - LastErrMsg = jobDetail.JobDataMap.GetString(Constant.EXCEPTION), + LastErrMsg = jobDetail?.JobDataMap.GetString(Constant.EXCEPTION), TriggerState = await scheduler.GetTriggerState(triggers.Key), PreviousFireTime = triggers.GetPreviousFireTimeUtc()?.LocalDateTime, NextFireTime = triggers.GetNextFireTimeUtc()?.LocalDateTime, - RunNumber = jobDetail.JobDataMap.GetLong(Constant.RUNNUMBER) + RunNumber = jobDetail?.JobDataMap.GetLong(Constant.RUNNUMBER) ?? 0 }); continue; } diff --git a/QuartzNetAPI/Host/Repositories/RepositorieFactory.cs b/QuartzNetAPI/Host/Repositories/RepositorieFactory.cs index d4c2a4f..435a1f5 100644 --- a/QuartzNetAPI/Host/Repositories/RepositorieFactory.cs +++ b/QuartzNetAPI/Host/Repositories/RepositorieFactory.cs @@ -24,6 +24,10 @@ public static IRepositorie CreateRepositorie(string driverDelegateType, IDbProvi { return new RepositorieOracle(dbProvider); } + else if (driverDelegateType == typeof(SqlServerDelegate).AssemblyQualifiedName) + { + return new RepositorieSqlServer(dbProvider); + } else { return null; diff --git a/QuartzNetAPI/Host/Repositories/RepositorieSqlServer.cs b/QuartzNetAPI/Host/Repositories/RepositorieSqlServer.cs new file mode 100644 index 0000000..7c4a45d --- /dev/null +++ b/QuartzNetAPI/Host/Repositories/RepositorieSqlServer.cs @@ -0,0 +1,87 @@ +using Dapper; +using Microsoft.Data.SqlClient; +using Newtonsoft.Json.Linq; +using Quartz.Impl.AdoJobStore.Common; +using System; +using System.IO; +using System.Text; +using System.Threading.Tasks; + +namespace Host.Repositories +{ + public class RepositorieSqlServer : IRepositorie + { + private IDbProvider DBProvider { get; } + public RepositorieSqlServer(IDbProvider dbProvider) + { + DBProvider = dbProvider; + } + + public async Task InitTable() + { + using (var connection = new SqlConnection(DBProvider.ConnectionString)) + { + var check_sql = @"SELECT + COUNT (1) + FROM + sys.tables + WHERE + name IN ( + 'QRTZ_BLOB_TRIGGERS', + 'QRTZ_CALENDARS', + 'QRTZ_CRON_TRIGGERS', + 'QRTZ_FIRED_TRIGGERS', + 'QRTZ_JOB_DETAILS', + 'QRTZ_LOCKS', + 'QRTZ_PAUSED_TRIGGER_GRPS', + 'QRTZ_SCHEDULER_STATE', + 'QRTZ_SIMPLE_TRIGGERS', + 'QRTZ_SIMPROP_TRIGGERS', + 'QRTZ_TRIGGERS' + );"; + var count = await connection.QueryFirstOrDefaultAsync(check_sql); + //初始化 建表 + if (count == 0) + { + string init_sql = await File.ReadAllTextAsync("Tables/tables_sqlServer.sql"); + return await connection.ExecuteAsync(init_sql); + } + } + return 0; + } + + public async Task RemoveErrLogAsync(string jobGroup, string jobName) + { + try + { + using (var connection = new SqlConnection(DBProvider.ConnectionString)) + { + string sql = $@"SELECT + JOB_DATA + FROM + QRTZ_JOB_DETAILS + WHERE + JOB_NAME = @jobName + AND JOB_GROUP = @jobGroup"; + + var byteArray = await connection.ExecuteScalarAsync(sql, new { jobName, jobGroup }); + var jsonStr = Encoding.Default.GetString(byteArray); + JObject source = JObject.Parse(jsonStr); + source.Remove("Exception");//移除异常日志 + var modifySql = $@"UPDATE QRTZ_JOB_DETAILS + SET JOB_DATA = @jobData + WHERE + JOB_NAME = @jobName + AND JOB_GROUP = @jobGroup"; + await connection.ExecuteAsync(modifySql, new { jobName, jobGroup, jobData = Encoding.Default.GetBytes(source.ToString()) }); + } + + return true; + } + catch (Exception ex) + { + return false; + } + } + } +} diff --git a/QuartzNetAPI/Host/Tables/tables_sqlServer.sql b/QuartzNetAPI/Host/Tables/tables_sqlServer.sql index d98d0ae..74c28f4 100644 --- a/QuartzNetAPI/Host/Tables/tables_sqlServer.sql +++ b/QuartzNetAPI/Host/Tables/tables_sqlServer.sql @@ -1,23 +1,19 @@ --- this script is for SQL Server and Azure SQL - -USE [enter_db_name_here] -GO IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) ALTER TABLE [dbo].[QRTZ_TRIGGERS] DROP CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] DROP CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS -GO +; IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS]') AND parent_object_id = OBJECT_ID(N'[dbo].[QRTZ_JOB_LISTENERS]')) ALTER TABLE [dbo].[QRTZ_JOB_LISTENERS] DROP CONSTRAINT [FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS] @@ -28,60 +24,60 @@ ALTER TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] DROP CONSTRAINT [FK_QRTZ_TRIGGER_LIST IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_CALENDARS] -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CRON_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_CRON_TRIGGERS] -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_BLOB_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_BLOB_TRIGGERS] -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_FIRED_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_FIRED_TRIGGERS] -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_PAUSED_TRIGGER_GRPS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] -GO +; IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QRTZ_JOB_LISTENERS]') AND type in (N'U')) DROP TABLE [dbo].[QRTZ_JOB_LISTENERS] IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SCHEDULER_STATE]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_SCHEDULER_STATE] -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_LOCKS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_LOCKS] -GO +; IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGER_LISTENERS]') AND type in (N'U')) DROP TABLE [dbo].[QRTZ_TRIGGER_LISTENERS] IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_JOB_DETAILS] -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPLE_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPROP_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].QRTZ_SIMPROP_TRIGGERS -GO +; IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) DROP TABLE [dbo].[QRTZ_TRIGGERS] -GO +; CREATE TABLE [dbo].[QRTZ_CALENDARS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , [CALENDAR_NAME] [NVARCHAR] (200) NOT NULL , [CALENDAR] [VARBINARY](MAX) NOT NULL ) -GO +; CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , @@ -90,7 +86,7 @@ CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] ( [CRON_EXPRESSION] [NVARCHAR] (120) NOT NULL , [TIME_ZONE_ID] [NVARCHAR] (80) ) -GO +; CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , @@ -107,13 +103,13 @@ CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] ( [IS_NONCONCURRENT] BIT NULL , [REQUESTS_RECOVERY] BIT NULL ) -GO +; CREATE TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , [TRIGGER_GROUP] [NVARCHAR] (150) NOT NULL ) -GO +; CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , @@ -121,13 +117,13 @@ CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] ( [LAST_CHECKIN_TIME] [BIGINT] NOT NULL , [CHECKIN_INTERVAL] [BIGINT] NOT NULL ) -GO +; CREATE TABLE [dbo].[QRTZ_LOCKS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , [LOCK_NAME] [NVARCHAR] (40) NOT NULL ) -GO +; CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , @@ -141,7 +137,7 @@ CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] ( [REQUESTS_RECOVERY] BIT NOT NULL , [JOB_DATA] [VARBINARY](MAX) NULL ) -GO +; CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , @@ -151,7 +147,7 @@ CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ( [REPEAT_INTERVAL] [BIGINT] NOT NULL , [TIMES_TRIGGERED] [INTEGER] NOT NULL ) -GO +; CREATE TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , @@ -170,7 +166,7 @@ CREATE TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ( [BOOL_PROP_2] BIT NULL, [TIME_ZONE_ID] [NVARCHAR] (80) NULL ) -GO +; CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , @@ -178,7 +174,7 @@ CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] ( [TRIGGER_GROUP] [NVARCHAR] (150) NOT NULL , [BLOB_DATA] [VARBINARY](MAX) NULL ) -GO +; CREATE TABLE [dbo].[QRTZ_TRIGGERS] ( [SCHED_NAME] [NVARCHAR] (120) NOT NULL , @@ -198,7 +194,7 @@ CREATE TABLE [dbo].[QRTZ_TRIGGERS] ( [MISFIRE_INSTR] [INTEGER] NULL , [JOB_DATA] [VARBINARY](MAX) NULL ) -GO +; ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_CALENDARS] PRIMARY KEY CLUSTERED @@ -206,7 +202,7 @@ ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD [SCHED_NAME], [CALENDAR_NAME] ) -GO +; ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_CRON_TRIGGERS] PRIMARY KEY CLUSTERED @@ -215,7 +211,7 @@ ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD [TRIGGER_NAME], [TRIGGER_GROUP] ) -GO +; ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_FIRED_TRIGGERS] PRIMARY KEY CLUSTERED @@ -223,7 +219,7 @@ ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD [SCHED_NAME], [ENTRY_ID] ) -GO +; ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_PAUSED_TRIGGER_GRPS] PRIMARY KEY CLUSTERED @@ -231,7 +227,7 @@ ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD [SCHED_NAME], [TRIGGER_GROUP] ) -GO +; ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_SCHEDULER_STATE] PRIMARY KEY CLUSTERED @@ -239,7 +235,7 @@ ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD [SCHED_NAME], [INSTANCE_NAME] ) -GO +; ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_LOCKS] PRIMARY KEY CLUSTERED @@ -247,7 +243,7 @@ ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD [SCHED_NAME], [LOCK_NAME] ) -GO +; ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_JOB_DETAILS] PRIMARY KEY CLUSTERED @@ -256,7 +252,7 @@ ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD [JOB_NAME], [JOB_GROUP] ) -GO +; ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_SIMPLE_TRIGGERS] PRIMARY KEY CLUSTERED @@ -265,7 +261,7 @@ ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD [TRIGGER_NAME], [TRIGGER_GROUP] ) -GO +; ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_SIMPROP_TRIGGERS] PRIMARY KEY CLUSTERED @@ -274,7 +270,7 @@ ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] WITH NOCHECK ADD [TRIGGER_NAME], [TRIGGER_GROUP] ) -GO +; ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_TRIGGERS] PRIMARY KEY CLUSTERED @@ -283,7 +279,7 @@ ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD [TRIGGER_NAME], [TRIGGER_GROUP] ) -GO +; ALTER TABLE [dbo].QRTZ_BLOB_TRIGGERS WITH NOCHECK ADD CONSTRAINT [PK_QRTZ_BLOB_TRIGGERS] PRIMARY KEY CLUSTERED @@ -292,7 +288,7 @@ ALTER TABLE [dbo].QRTZ_BLOB_TRIGGERS WITH NOCHECK ADD [TRIGGER_NAME], [TRIGGER_GROUP] ) -GO +; ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD CONSTRAINT [FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY @@ -305,7 +301,7 @@ ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD [TRIGGER_NAME], [TRIGGER_GROUP] ) ON DELETE CASCADE -GO +; ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD CONSTRAINT [FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY @@ -318,7 +314,7 @@ ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD [TRIGGER_NAME], [TRIGGER_GROUP] ) ON DELETE CASCADE -GO +; ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ADD CONSTRAINT [FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY @@ -331,7 +327,7 @@ ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ADD [TRIGGER_NAME], [TRIGGER_GROUP] ) ON DELETE CASCADE -GO +; ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD CONSTRAINT [FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS] FOREIGN KEY @@ -344,7 +340,7 @@ ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD [JOB_NAME], [JOB_GROUP] ) -GO +; CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP) CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP) @@ -365,4 +361,4 @@ CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROU CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP) CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP) -GO +; diff --git a/QuartzNetAPI/Host/appsettings.json b/QuartzNetAPI/Host/appsettings.json index 234cc0b..29571c2 100644 --- a/QuartzNetAPI/Host/appsettings.json +++ b/QuartzNetAPI/Host/appsettings.json @@ -22,21 +22,22 @@ //数据源配置 //"dbProviderName":"OracleODPManaged", -//"connectionString": "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xe)));User Id=system;Password=oracle;"; +//"connectionString": "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xe)));User Id=system;Password=oracle;" +// # SqlServer 测试通过 //"dbProviderName":"SqlServer", -//"connectionString": "Server=localhost;Database=quartznet;User Id={SqlServerUser};Password={SqlServerPassword};"; +//"connectionString": "Server=localhost;Database=quartznet;User Id=SqlServerUser;Password=SqlServerPassword;" //"dbProviderName":"SQLServerMOT", //"connectionString": "Server=localhost,1444;Database=quartznet;User Id={SqlServerUser};Password={SqlServerPassword};" // # MySql 测试通过 //"dbProviderName":"MySql", -//"connectionString": "Server = localhost; Database = quartznet; Uid = quartznet; Pwd = quartznet"; +//"connectionString": "Server = localhost; Database = quartznet; Uid = quartznet; Pwd = quartznet" // # Npgsql 测试通过 //"dbProviderName":"Npgsql", -//"connectionString": "Server=127.0.0.1;Port=5432;Userid=quartznet;Password=quartznet;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Timeout=15;SslMode=Disable;Database=quartznet"; +//"connectionString": "Server=127.0.0.1;Port=5432;Userid=quartznet;Password=quartznet;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Timeout=15;SslMode=Disable;Database=quartznet" //"dbProviderName":"SQLite", -//"connectionString": "Data Source=test.db;Version=3;"; +//"connectionString": "Data Source=test.db;Version=3;" // # SQLite-Microsoft 测试通过 //"dbProviderName":"SQLite-Microsoft", -//"connectionString": "Data Source=test.db;"; +//"connectionString": "Data Source=test.db;" //"dbProviderName":"Firebird", -//"connectionString": "User=SYSDBA;Password=masterkey;Database=/firebird/data/quartz.fdb;DataSource=localhost;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;"; +//"connectionString": "User=SYSDBA;Password=masterkey;Database=/firebird/data/quartz.fdb;DataSource=localhost;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;"