Selaa lähdekoodia

修改从OceanBase数据库取数据方式

Benson 1 vuosi sitten
vanhempi
commit
81a490d01a

+ 5 - 4
XmlDocumentAnalysis/App.config

@@ -16,13 +16,14 @@
     <add key="xmlBasePath" value="ftp://192.168.11.22/calls/400001/" />
     <!--拷贝的xml底层目录-->
     <add key="copyXmlFilePath" value="E:\Recording\400001" />
-    <!--csv路-->
+    <!--csv路-->
     <add key="csvBaseFilePath" value="C:\Users\13491\Desktop\鼎和\csv" />
     <!--数据库连接-->
     <!--<add key="default" value="User ID=SYSTEM;Password=123456;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))"/>-->
-    <add key="default" value="User ID=SYSTEM;Password=Aa853276300;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.11.22)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = SA)))" />
-    <!--数据库类型:oracle,sqlserver-->
-    <add key="defaultDBType" value="oracle" />
+    <!--<add key="default" value="User ID=SYSTEM;Password=Aa853276300;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.11.22)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = SA)))" />-->
+	<add key="default" value="Driver={OceanBase ODBC 2.0 Driver};Server=10.252.1.37;Port=2883;Database=callcenter;User=callcenter@ob_ora_301#DHXC_CTC;Password=YzlC_#j049;"/>
+    <!--数据库类型:oracle,sqlserver,OceanBase-->
+    <add key="defaultDBType" value="OceanBase" />
     <add key="ClientSettingsProvider.ServiceUri" value="" />
   </appSettings>
   <system.web>

+ 14 - 1
XmlDocumentAnalysis/Form1.Designer.cs

@@ -33,6 +33,7 @@
             this.dateTimePicker2 = new System.Windows.Forms.DateTimePicker();
             this.button2 = new System.Windows.Forms.Button();
             this.删除录音文件 = new System.Windows.Forms.Button();
+            this.btnTest = new System.Windows.Forms.Button();
             this.SuspendLayout();
             // 
             // button1
@@ -77,7 +78,7 @@
             // 
             // 删除录音文件
             // 
-            this.删除录音文件.Location = new System.Drawing.Point(225, 219);
+            this.删除录音文件.Location = new System.Drawing.Point(415, 242);
             this.删除录音文件.Name = "删除录音文件";
             this.删除录音文件.Size = new System.Drawing.Size(157, 23);
             this.删除录音文件.TabIndex = 4;
@@ -85,11 +86,22 @@
             this.删除录音文件.UseVisualStyleBackColor = true;
             this.删除录音文件.Click += new System.EventHandler(this.button3_Click);
             // 
+            // btnTest
+            // 
+            this.btnTest.Location = new System.Drawing.Point(415, 196);
+            this.btnTest.Name = "btnTest";
+            this.btnTest.Size = new System.Drawing.Size(123, 23);
+            this.btnTest.TabIndex = 5;
+            this.btnTest.Text = "测试";
+            this.btnTest.UseVisualStyleBackColor = true;
+            this.btnTest.Click += new System.EventHandler(this.btnTest_Click);
+            // 
             // Form1
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.ClientSize = new System.Drawing.Size(619, 287);
+            this.Controls.Add(this.btnTest);
             this.Controls.Add(this.删除录音文件);
             this.Controls.Add(this.button2);
             this.Controls.Add(this.dateTimePicker2);
@@ -109,5 +121,6 @@
         private System.Windows.Forms.DateTimePicker dateTimePicker2;
         private System.Windows.Forms.Button button2;
         private System.Windows.Forms.Button 删除录音文件;
+        private System.Windows.Forms.Button btnTest;
     }
 }

+ 37 - 22
XmlDocumentAnalysis/Form1.cs

@@ -76,11 +76,13 @@ namespace XmlDucumentAnalysis
         private void button1_Click(object sender, EventArgs e)
         {
             Log.Info("点击复制该时间段的录音文件");
+            Log.Debug("开始执行" + minDateTime + "至" + maxDateTime + "录音文件拷贝任务");
             RecordingCopyJob(this.minDateTime, this.maxDateTime);
         }
         private void button2_Click(object sender, EventArgs e)
         {
             Log.Info("点击生成csv文件");
+            Log.Debug("开始执行" + minDateTime + "至" + maxDateTime + "的生成csv文件任务");
             CreateCsvFileJob(this.minDateTime, this.maxDateTime);
         }
         private void Form1_Load(object sender, EventArgs e)
@@ -250,13 +252,13 @@ namespace XmlDucumentAnalysis
             List<string> lineList = new List<string>();
             // 定义表头
             lineList.Add("录音流水ID,录音文件名,数据包,通话时长(单位:秒),通话拨打时间,通话挂机时间,主叫号码,被叫号码,坐席工号,坐席ID,质检场景,呼叫类型(0:呼入,1:呼出),客户号,平台code,扩展字段1,扩展字段2,扩展字段3,扩展字段4,扩展字段5,扩展字段6");
-            OracleHelper oracleHelper = null;
+            OdbcHelper odbcHelper = null;
             DataTable dataList = new DataTable();
             try
             {
-                oracleHelper = new OracleHelper(this.ConnectString);
-                dataList = getSqlField(oracleHelper, minTime, maxTime);
-                oracleHelper = null;
+                odbcHelper = new OdbcHelper(this.ConnectString);
+                dataList = getSqlField(odbcHelper, minTime, maxTime);
+                odbcHelper = null;
             }
             catch (Exception exp)
             {
@@ -264,11 +266,11 @@ namespace XmlDucumentAnalysis
             }
             finally
             {
-                bool flag = oracleHelper != null;
+                bool flag = odbcHelper != null;
                 if (flag)
                 {
-                    oracleHelper.CloseConnection();
-                    oracleHelper = null;
+                    odbcHelper.CloseConnection();
+                    odbcHelper = null;
                 }
             }
             // 获取录音流水文件List
@@ -281,24 +283,28 @@ namespace XmlDucumentAnalysis
                 
                 string catalog = File.ReadAllText(lastTimeFileName);
                 Log.Debug("成功获取上次记录:" + catalog);
+                //E:\Recording\400001\004\11\40
                 // 上一次copy文件夹的目录级别
                 string[] catalogList = catalog.Split('\\');
                 int catalogListSize = catalogList.Length;
-                string level1Catalog = catalogList[catalogListSize - 3];
-                string level2Catalog = catalogList[catalogListSize - 2];
-                string level3Catalog = catalogList[catalogListSize - 1];
+                string level1Catalog = catalogList[catalogListSize - 3];//004
+                string level2Catalog = catalogList[catalogListSize - 2];//11
+                string level3Catalog = catalogList[catalogListSize - 1];//40
+                //4-99
                 for (int i = int.Parse(level1Catalog); i <= 99; i++)
                 {
-                    
+                    //copyXmlFilePath=E:\Recording\400001
                     string level1Dir = this.copyXmlFilePath + "\\" + i.ToString().PadLeft(3, '0');
-                    Log.Debug("判断文件夹路径是否存在" + level1Dir);
+                    Log.Debug("判断文件夹路径是否存在" + level1Dir);//E:\Recording\400001\004
                     // 判断文件夹路径是否存在 不存在则结束循环
                     if (!Directory.Exists(level1Dir))
                     {
                         break;
                     }
+                    //如果是旧的上层文件夹,则下一层从该序号开始
                     for (int j = i == int.Parse(level1Catalog) ? int.Parse(level2Catalog) : 0; j <= 99; j++)
                     {
+                        //E:\Recording\400001\004\11
                         string level2Dir = level1Dir + "\\" + j.ToString().PadLeft(2, '0');
                         Log.Debug("判断文件夹路径是否存在" + level2Dir);
                         // 判断文件夹路径是否存在 不存在则结束循环
@@ -308,7 +314,7 @@ namespace XmlDucumentAnalysis
                         }
                         for (int k = j == int.Parse(level2Catalog) ? int.Parse(level3Catalog) : 0; k <= 99; k++)
                         {
-                            
+                            //E:\Recording\400001\004\11\40
                             string level3Dir = level2Dir + "\\" + k.ToString().PadLeft(2, '0');
                             Log.Debug("判断文件夹路径是否存在" + level3Dir);
                             // 判断文件夹路径是否存在 不存在则结束循环
@@ -472,7 +478,7 @@ namespace XmlDucumentAnalysis
         // 时间检测 定时任务
         public void OnTimer(object sender, ElapsedEventArgs args)
         {
-            // 时间等于12:00  执行中午的录音拷贝
+            // 时间等于12:15  执行中午的录音拷贝
             if (DateTime.Now.Hour == 12 && DateTime.Now.Minute == 15)
             {
                 // 当天0时0分0秒:
@@ -483,7 +489,7 @@ namespace XmlDucumentAnalysis
                 // 调用录音拷贝任务
                 RecordingCopyJob(minDateTime, maxDateTime);
             }
-            // 时间等于12: 00  执行中午的生成csv文件
+            // 时间等于12: 30  执行中午的生成csv文件
             else if (DateTime.Now.Hour == 12 && DateTime.Now.Minute == 30)
             {
                 // 当天0时0分0秒:
@@ -493,7 +499,7 @@ namespace XmlDucumentAnalysis
                 Log.Debug("开始执行" + minDateTime + "至" + maxDateTime + "的生成csv文件任务");
                 CreateCsvFileJob(minDateTime, maxDateTime);
             }
-            // 时间等于00:00 执行下午的录音拷贝
+            // 时间等于00:15 执行下午的录音拷贝
             else if (DateTime.Now.Hour == 00 && DateTime.Now.Minute == 15)
             {
 
@@ -502,7 +508,7 @@ namespace XmlDucumentAnalysis
                 Log.Debug("开始执行" + minDateTime + "至" + maxDateTime + "录音文件拷贝任务");
                 RecordingCopyJob(minDateTime, maxDateTime);
             }
-            // 时间等于00:30 执行下午的生成csv文件
+            // 时间等于00:30 执行下午的生成csv文件,00:30
             else if (DateTime.Now.Hour == 0 && DateTime.Now.Minute == 30)
             {
                 maxDateTime = Convert.ToDateTime(DateTime.Now.ToString("D").ToString());
@@ -672,7 +678,7 @@ namespace XmlDucumentAnalysis
                 archive.CloseArchive();
             }
         }
-        private DataTable getSqlField(OracleHelper oradb, DateTime minTime, DateTime maxTime)
+        private DataTable getSqlField(OdbcHelper odbcHelper, DateTime minTime, DateTime maxTime)
         {
             string sql = string.Format("select r.recordno ID," +
                 "case when s3.workordertype3desc is null and s2.workordertype2desc is not null then s1.workordertype1desc || '_' || s2.workordertype2desc "+
@@ -699,13 +705,17 @@ namespace XmlDucumentAnalysis
                 "where (w.rn=1 or w.rn is null) and " +
                 "r.starttime>=to_date('{0}','yyyy-mm-dd hh24:mi:ss') " +
                 "and r.starttime <= to_date('{1}','yyyy-mm-dd hh24:mi:ss')", minTime.ToString(), maxTime.ToString());
-            //string sql = string.Format("select * from TEST2");
-            DataTable data = oradb.GetDataTable(sql);
+            DataTable data = odbcHelper.GetDataTable(sql);
             string idString = "";
-            for (int i = 0; i < data.Rows.Count; i++)
+            if (data != null) 
             {
-                idString = idString + data.Rows[i]["callid"].ToString() + ",";//行集合.行【号】列【名】
+                Log.Debug("sql查询结果行数:" + data.Rows.Count.ToString());
+                for (int i = 0; i < data.Rows.Count; i++)
+                {
+                    idString = idString + data.Rows[i]["callid"].ToString() + ",";//行集合.行【号】列【名】
+                }
             }
+            
             Log.Debug("sql查询结果11为:" + idString);
             return data;
         }
@@ -776,5 +786,10 @@ namespace XmlDucumentAnalysis
                 }
             }
         }
+
+        private void btnTest_Click(object sender, EventArgs e)
+        {
+            
+        }
     }
 }

+ 435 - 0
XmlDocumentAnalysis/OdbcHelper.cs

@@ -0,0 +1,435 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.Odbc;
+using System.Data.OracleClient;
+using XmlDucumentAnalysis;
+
+namespace DataPumpWindowsService
+{
+    public class OdbcHelper
+    {
+        private string _message = "";//返回信息
+        public OdbcConnection _con_SQL;//连接对象
+
+        public string Message { get { return _message; } }
+
+        public OdbcHelper(string connecteString)
+        {
+            _con_SQL = new OdbcConnection(connecteString);
+        }
+
+        #region 命令、事务、连接
+        /// <summary>
+        /// 创建命令对象
+        /// </summary>
+        /// <returns></returns>
+        private OdbcCommand CreateCommand()
+        {
+            OdbcCommand cmdObj = _con_SQL.CreateCommand();
+            cmdObj.CommandTimeout = int.MaxValue;
+            return cmdObj;
+        }
+
+        /// <summary>
+        /// 打开连接
+        /// </summary>
+        /// <returns></returns>
+        public bool OpenConnection()
+        {
+            //检测连接是否已打开
+            if (_con_SQL.State == System.Data.ConnectionState.Open)
+                return true;
+            try
+            {
+                _con_SQL.Open();
+            }
+            catch (Exception ex)
+            {
+                _message = ex.Message;
+                Log.Debug(ex);
+                return false;
+            }
+
+            //检测连接状态
+            if (_con_SQL.State != System.Data.ConnectionState.Open)
+            {
+                _message = "打开连接失败";
+                return false;
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 关闭连接
+        /// </summary>
+        /// <returns></returns>
+        public bool CloseConnection()
+        {
+            if (_con_SQL.State == System.Data.ConnectionState.Closed)
+                return true;
+
+            try
+            {
+                _con_SQL.Close();
+            }
+            catch (Exception ex)
+            {
+                _message = ex.Message;
+                Log.Debug(ex);
+                return false;
+            }
+
+            if (_con_SQL.State != System.Data.ConnectionState.Closed)
+            {
+                _message = "关闭连接失败";
+                return false;
+            }
+            return true;
+        }
+        #endregion
+
+        #region 执行无返回值的sql语句
+        /// <summary>
+        /// 执行无返回值的sql语句
+        /// </summary>
+        /// <param name="commandString"></param>
+        /// <returns></returns>
+        public bool ExecuteNonQuery(string commandString)
+        {
+            //打开连接失败,不执行查询
+            if (!OpenConnection())
+                return false;
+            try
+            {
+                OdbcCommand cmdObj = CreateCommand();
+                cmdObj.CommandText = commandString;
+                cmdObj.ExecuteNonQuery();
+            }
+            catch (Exception ex)
+            {
+                CloseConnection();
+                _message = ex.Message;
+                Log.Debug(ex);
+                Log.Debug("ex:" + commandString);
+                return false;
+            }
+            CloseConnection();
+            return true;
+        }
+        #endregion
+
+        #region 执行返回值的sql
+        /// <summary>
+        /// 执行返回值的sql
+        /// </summary>
+        /// <param name="commandString"></param>
+        /// <returns></returns>
+        public object ExecuteResult(string commandString)
+        {
+            object reobj = null;
+
+            //打开连接失败,不执行查询
+            if (!OpenConnection()) return reobj;
+
+            try
+            {
+                OdbcCommand cmdObj = CreateCommand();
+                cmdObj.CommandText = commandString;
+                reobj = cmdObj.ExecuteScalar();
+            }
+            catch (Exception ex)
+            {
+                _message = ex.Message;
+                Log.Debug(ex);
+            }
+            finally
+            {
+                CloseConnection();
+            }
+            return reobj;
+        }
+        #endregion
+
+        #region 执行sql命令组
+        /// <summary>
+        /// 执行sql命令组
+        /// </summary>
+        /// <param name="arrSql"></param>
+        /// <returns></returns>
+        public bool ExecuteSqls(ArrayList arrSql)
+        {
+            if (!OpenConnection()) return false;
+
+            try
+            {
+                OdbcCommand cmdObj = CreateCommand();
+                foreach (var sql in arrSql)
+                {
+                    cmdObj.CommandText = sql.ToString();
+                    cmdObj.ExecuteNonQuery();
+                }
+            }
+            catch (Exception ex)
+            {
+                _message = ex.Message;
+                Log.Debug(ex);
+                return false;
+            }
+            finally
+            {
+                CloseConnection();
+            }
+            return true;
+        }
+        #endregion
+
+        #region 事务控制执行sql命令组
+        /// <summary>
+        /// 事务控制执行sql命令组
+        /// </summary>
+        /// <param name="arrSql"></param>
+        /// <returns></returns>
+        public bool ExecuteSqlByAffair(ArrayList arrSql)
+        {
+            if (!OpenConnection()) return false;
+            OdbcTransaction transObj = _con_SQL.BeginTransaction();//开始事务操作
+            try
+            {
+                OdbcCommand cmdObj = CreateCommand();
+                cmdObj.Transaction = transObj;//指定command的事务对象
+                foreach (var sql in arrSql)
+                {
+                    cmdObj.CommandText = sql.ToString();
+                    cmdObj.ExecuteNonQuery();
+                }
+                transObj.Commit();
+            }
+            catch (Exception ex)
+            {
+                transObj.Rollback();
+                _message = ex.Message;
+                Log.Debug(ex);
+                foreach (var sql in arrSql)
+                {
+                    Log.Debug("ex:" + sql);
+                }
+                return false;
+            }
+            finally
+            {
+                CloseConnection();
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 事务控制执行sql命令组
+        /// </summary>
+        /// <param name="dicSql"></param>
+        /// <returns></returns>
+        public bool ExecuteSqlsByAffair(Dictionary<string, string> dicSql)
+        {
+            if (!OpenConnection())
+                return false;
+            OdbcTransaction transObj = _con_SQL.BeginTransaction();
+            string sqlPath = string.Empty;
+            try
+            {
+                OdbcCommand cmdObj = CreateCommand();
+                cmdObj.Transaction = transObj;
+                foreach (var item in dicSql)
+                {
+                    sqlPath = item.Key;
+                    string[] commands = System.Text.RegularExpressions.Regex.Split(item.Value + " ",
+                        "[ |\r\n]go[ |\r\n]", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
+                    foreach (string sql in commands)
+                        if (sql.Trim().Length > 0)
+                        {
+                            cmdObj.CommandText = sql;
+                            cmdObj.ExecuteNonQuery();
+                        }
+                }
+                transObj.Commit();
+            }
+            catch (Exception ex)
+            {
+                transObj.Rollback();
+                _message = string.Format("执行 {0} 出错;\r\n", sqlPath);
+                _message += ex.Message;
+                Log.Debug(_message);
+                return false;
+            }
+            finally
+            {
+                CloseConnection();
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 事务控制执行sql命令组
+        /// </summary>
+        /// <param name="dicSql">sql命令组</param>
+        /// <param name="dicRecord">返回的日志</param>
+        /// <returns></returns>
+        public bool ExecuteSqlsByAffair(Dictionary<string, string> dicSql, ref Dictionary<string, string> dicRecord)
+        {
+            if (!OpenConnection()) return false;
+            OdbcTransaction transObj = _con_SQL.BeginTransaction();
+            string sqlPath = string.Empty;
+            try
+            {
+                OdbcCommand cmdObj = CreateCommand();
+                cmdObj.Transaction = transObj;
+                foreach (var item in dicSql)
+                {
+                    sqlPath = item.Key;
+                    string[] commands = System.Text.RegularExpressions.Regex.Split(item.Value + " ",
+                        "[ |\r\n]go[ |\r\n]", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
+                    foreach (string sql in commands)
+                        if (sql.Trim().Length > 0)
+                        {
+                            cmdObj.CommandText = sql;
+                            cmdObj.ExecuteNonQuery();
+                        }
+
+                    if (dicRecord != null)
+                        dicRecord.Add(sqlPath, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo));
+                }
+                transObj.Commit();
+            }
+            catch (Exception ex)
+            {
+                _message = string.Format("执行{0}出错:\r\n", sqlPath);
+                _message += ex.Message;
+                Log.Debug(_message);
+                try { transObj.Rollback(); }
+                catch { }
+                return false;
+            }
+            return true;
+        }
+        #endregion
+
+        #region 获取数据表
+        /// <summary>
+        /// 获取数据表
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <returns></returns>
+        public DataTable GetDataTable(string sql)
+        {
+            Log.Debug(sql);
+            if (!OpenConnection()) return null;
+            try
+            {
+                DataTable dt = new DataTable();
+                OdbcCommand cmdObj = CreateCommand();
+                cmdObj.CommandText = sql;
+                OdbcDataAdapter daObj = new OdbcDataAdapter(cmdObj);
+                daObj.Fill(dt);
+                return dt;
+            }
+            catch (Exception ex)
+            {
+                _message = ex.Message;
+                Log.Debug(ex);
+                Log.Debug("ex:" + sql);
+                return null;
+            }
+            finally
+            {
+                CloseConnection();
+            }
+        }
+
+        /// <summary>
+        /// 获取数据表
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <param name="tableName"></param>
+        /// <returns></returns>
+        public DataTable GetDataTable(string sql, string tableName)
+        {
+            if (!OpenConnection()) return null;
+            try
+            {
+                DataTable dt = new DataTable();
+                OdbcCommand cmdObj = CreateCommand();
+                cmdObj.CommandText = sql;
+                OdbcDataAdapter daObj = new OdbcDataAdapter(cmdObj);
+                daObj.Fill(dt);
+                dt.TableName = tableName;
+                return dt;
+            }
+            catch (Exception ex)
+            {
+                _message = ex.Message;
+                Log.Debug(ex);
+                return null;
+            }
+            finally
+            {
+                CloseConnection();
+            }
+        }
+
+        public DataTable GetDataTable(string sql, string tableName, int currentPage, int pageSize)
+        {
+            if (!OpenConnection()) return null;
+            try
+            {
+                DataSet ds = new DataSet();
+                OdbcCommand cmdObj = CreateCommand();
+                cmdObj.CommandText = sql;
+                OdbcDataAdapter daObj = new OdbcDataAdapter(cmdObj);
+                daObj.Fill(ds, (currentPage - 1) * pageSize, pageSize, tableName);
+                return ds.Tables[0];
+            }
+            catch (Exception ex)
+            {
+                _message = ex.Message;
+                Log.Debug(ex);
+                return null;
+            }
+            finally
+            {
+                CloseConnection();
+            }
+        }
+        #endregion
+
+        #region 获取数据集
+        /// <summary>
+        /// 获取数据集
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <returns></returns>
+        public DataSet GetDataSet(string sql)
+        {
+            if (!OpenConnection()) return null;
+            try
+            {
+                DataSet ds = new DataSet();
+                OdbcCommand cmdObj = CreateCommand();
+                cmdObj.CommandText = sql;
+                OdbcDataAdapter daObj = new OdbcDataAdapter(cmdObj);
+                daObj.Fill(ds);
+                return ds;
+            }
+            catch (Exception ex)
+            {
+                _message = ex.Message;
+                Log.Debug(ex);
+                return null;
+            }
+            finally
+            {
+                CloseConnection();
+            }
+        }
+        #endregion
+    }
+}

+ 9 - 9
XmlDocumentAnalysis/XmlDocumentAnalysis.cs

@@ -233,13 +233,13 @@ namespace XmlDucumentAnalysis
             List<string> lineList = new List<string>();
             // 定义表头
             lineList.Add("录音流水ID,录音文件名,数据包,通话时长(单位:秒),通话拨打时间,通话挂机时间,主叫号码,被叫号码,坐席工号,坐席ID,质检场景,呼叫类型(0:呼入,1:呼出),客户号,平台code,扩展字段1,扩展字段2,扩展字段3,扩展字段4,扩展字段5,扩展字段6");
-            OracleHelper oracleHelper = null;
+            OdbcHelper odbcHelper = null;
             DataTable dataList = new DataTable();
             try
             {
-                oracleHelper = new OracleHelper(this.ConnectString);
-                dataList = getSqlField(oracleHelper, minTime, maxTime);
-                oracleHelper = null;
+                odbcHelper = new OdbcHelper(this.ConnectString);
+                dataList = getSqlField(odbcHelper, minTime, maxTime);
+                odbcHelper = null;
             }
             catch (Exception exp)
             {
@@ -247,11 +247,11 @@ namespace XmlDucumentAnalysis
             }
             finally
             {
-                bool flag = oracleHelper != null;
+                bool flag = odbcHelper != null;
                 if (flag)
                 {
-                    oracleHelper.CloseConnection();
-                    oracleHelper = null;
+                    odbcHelper.CloseConnection();
+                    odbcHelper = null;
                 }
             }
             // 获取录音流水文件List
@@ -662,7 +662,7 @@ namespace XmlDucumentAnalysis
                 archive.CloseArchive();
             }
         }
-        private DataTable getSqlField(OracleHelper oradb, DateTime minTime, DateTime maxTime)
+        private DataTable getSqlField(OdbcHelper odbcHelper, DateTime minTime, DateTime maxTime)
         {
             string sql = string.Format("select r.recordno ID," +
                 "case when s3.workordertype3desc is null and s2.workordertype2desc is not null then s1.workordertype1desc || '_' || s2.workordertype2desc " +
@@ -690,7 +690,7 @@ namespace XmlDucumentAnalysis
                 "r.starttime>=to_date('{0}','yyyy-mm-dd hh24:mi:ss') " +
                 "and r.starttime <= to_date('{1}','yyyy-mm-dd hh24:mi:ss')", minTime.ToString(), maxTime.ToString());
             //string sql = string.Format("select * from TEST2");
-            DataTable data = oradb.GetDataTable(sql);
+            DataTable data = odbcHelper.GetDataTable(sql);
             string idString = "";
             for (int i = 0; i < data.Rows.Count; i++)
             {

+ 1 - 0
XmlDocumentAnalysis/XmlDocumentAnalysis.csproj

@@ -118,6 +118,7 @@
     </Compile>
     <Compile Include="Log.cs" />
     <Compile Include="model\XmlModel.cs" />
+    <Compile Include="OdbcHelper.cs" />
     <Compile Include="OracleHelper.cs" />
     <Compile Include="ProjectInstaller.cs">
       <SubType>Component</SubType>

BIN
鼎和抽音服务程序修改说明.docx