From 95194733ccbd5b63bf2640b511b352e2efb1143f Mon Sep 17 00:00:00 2001 From: OCEAN <1010331798@qq.com> Date: Sun, 16 Feb 2025 14:30:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BE=BE=E6=A2=A6=E5=8A=A0=E8=BD=BD=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CNAS_DBSync/frmDatabaseParams.cs | 10 ++++- .../Factory/InstrumentDataSourceFact.cs | 3 ++ CnasSynchronusDAL/DAL/DmDAL.cs | 3 +- dll/CNAS_DBSync.exe | Bin 249856 -> 250368 bytes dll/CnasSynchronusClient.dll | Bin 82944 -> 83456 bytes dll/CnasSynchronusDAL.dll | Bin 107008 -> 107008 bytes dll/ErrorLog/20250216.txt | 35 ++++++++++++++++++ 7 files changed, 49 insertions(+), 2 deletions(-) diff --git a/CNAS_DBSync/frmDatabaseParams.cs b/CNAS_DBSync/frmDatabaseParams.cs index 060a5c2..b87f425 100644 --- a/CNAS_DBSync/frmDatabaseParams.cs +++ b/CNAS_DBSync/frmDatabaseParams.cs @@ -159,6 +159,14 @@ namespace CNAS_DBSync this.txtKingbaselPwd.Text = syncInstrumentItem.SyncInstrumentDSInfo.UserPwd; this.txtKingbaselPort.Text = syncInstrumentItem.SyncInstrumentDSInfo.Port; break; + case DataSourceType.Dm: + this.tabcDS.SelectedIndex = 10; + this.txtDmHost.Text = syncInstrumentItem.SyncInstrumentDSInfo.Host; + this.txtDmServer.Text = syncInstrumentItem.SyncInstrumentDSInfo.ServerName; + this.txtDmUser.Text = syncInstrumentItem.SyncInstrumentDSInfo.UserId; + this.txtDmPwd.Text = syncInstrumentItem.SyncInstrumentDSInfo.UserPwd; + this.txtDmPort.Text = syncInstrumentItem.SyncInstrumentDSInfo.Port; + break; default: break; } @@ -271,7 +279,7 @@ namespace CNAS_DBSync syncInstrumentItem.SyncInstrumentDSInfo.ServerName = this.txtDmServer.Text.Trim(); syncInstrumentItem.SyncInstrumentDSInfo.UserId = this.txtDmUser.Text.Trim(); syncInstrumentItem.SyncInstrumentDSInfo.UserPwd = this.txtDmPwd.Text.Trim(); - //syncInstrumentItem.SyncInstrumentDSInfo.Port = this.tx.Text.Trim(); + syncInstrumentItem.SyncInstrumentDSInfo.Port = this.txtDmPort.Text.Trim(); break; default: syncInstrumentItem.SyncInstrumentDSInfo.Path = this.txtInportExcel.Text.Trim(); diff --git a/CnasSynchronusClient/Factory/InstrumentDataSourceFact.cs b/CnasSynchronusClient/Factory/InstrumentDataSourceFact.cs index 92b55af..1645ff0 100644 --- a/CnasSynchronusClient/Factory/InstrumentDataSourceFact.cs +++ b/CnasSynchronusClient/Factory/InstrumentDataSourceFact.cs @@ -52,6 +52,9 @@ namespace CnasSynchronusClient case DataSourceType.Kingbase: instrumentData = new KingbaseServerInstrumentData(dataSourceInfo, obj); break; + case DataSourceType.Dm: + instrumentData = new DmServerInstrumentData(dataSourceInfo, obj); + break; case DataSourceType.Excel: default: instrumentData = new ExcelInstrumentData(dataSourceInfo,obj); diff --git a/CnasSynchronusDAL/DAL/DmDAL.cs b/CnasSynchronusDAL/DAL/DmDAL.cs index 3bb987d..6395d85 100644 --- a/CnasSynchronusDAL/DAL/DmDAL.cs +++ b/CnasSynchronusDAL/DAL/DmDAL.cs @@ -26,7 +26,8 @@ namespace CnasSynchronusDAL public DataTable GetTableNames(string strName) { DataTable dt = new DataTable(); - string strSql = string.Format("SELECT table_name as TABNAME FROM user_tables WHERE owner='{0}'", strName); + //string strSql = string.Format("SELECT table_name as TABNAME FROM user_tables WHERE owner='{0}'", strName); + string strSql = string.Format("SELECT table_name as TABNAME FROM user_tables WHERE TABLESPACE_NAME='MAIN'", strName); try { dt = DamengHelper.ExecuteDataSet(strSql).Tables[0]; diff --git a/dll/CNAS_DBSync.exe b/dll/CNAS_DBSync.exe index 3702ca5923bd6e0112540c808a6b959b0c7176c9..c7d8ec13ab10f39aa5c99af4895f6a40198ba1e2 100644 GIT binary patch delta 6055 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 delta 5939 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 tr7>;D;Qx27>FH(?PmZ^DHIvZ