예제 #1
0
        public ExecutionResult ExecuteSql(string sql, ExecuteMode executeMode, Hashtable htValues)
        {
            ExecutionResult execRes = new ExecutionResult();
            bool designMode = string.IsNullOrEmpty(CliUtils.fLoginDB);
            if (designMode)
            {
                return ExecuteSqlDesign(sql, executeMode, htValues);
            }
            string database = designMode ? report.EEPAlias : CliUtils.fLoginDB;
            CliUtils.fLoginDB = database;
            ClientType clientType = CliUtils.GetDataBaseType(database);

            DBParameter dbParameter = new DBParameter(clientType);
            try
            {
                ArrayList parameters = new ArrayList();
                if (htValues != null)
                {
                    foreach (DictionaryEntry de in htValues)
                    {
                        IDbDataParameter dbParam = dbParameter.CreateParameter();
                        dbParam.ParameterName = dbParameter.ParamTag + de.Key;
                        dbParam.Value = de.Value;
                        if (de.Value != null)
                        {
                            if (de.Value.GetType().Name == "Byte[]")
                            {
                                if (dbParam is OleDbParameter)
                                    (dbParam as OleDbParameter).OleDbType = OleDbType.LongVarBinary;
                                else
                                    dbParam.DbType = DbType.Binary;
                            }
                            else
                            {
                                if (dbParam is OleDbParameter)
                                    (dbParam as OleDbParameter).OleDbType = OleDbType.VarChar;
                                else
                                    dbParam.DbType = DbType.String;
                            }
                        }
                        else
                        {
                            if (dbParam is OleDbParameter)
                                (dbParam as OleDbParameter).OleDbType = OleDbType.VarChar;
                            else
                                dbParam.DbType = DbType.String;
                            dbParam.Value = "";
                        }
                        parameters.Add(dbParam);
                    }
                }

                DataSet ds = CliUtils.ExecuteSql("GLModule", "cmdRefValUse", sql, database, executeMode == ExecuteMode.Select, CliUtils.fCurrentProject, null, parameters);

                if (executeMode == ExecuteMode.Select)
                {
                    execRes.Anything = ds.Tables[0];
                }

                //if (executeMode == ExecuteMode.Select)
                //{
                //    iDbDataAdapter = DBUtils.CreateDbDataAdapter(iDbCommand);
                //    if (iDbCommand.Connection is OleDbConnection)
                //    {
                //        DataTable dt = new DataTable();
                //        (iDbDataAdapter as OleDbDataAdapter).Fill(dt);
                //        ds.Tables.Add(dt);
                //    }
                //    else
                //        iDbDataAdapter.Fill(ds);
                //    //iDbDataAdapter.Fill(ds);
                //    execRes.Anything = ds.Tables[0];
                //}
                //else
                //{
                //    iDbCommand.ExecuteNonQuery();
                //}
                execRes.Status = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (designMode)
                {
                    CliUtils.fLoginDB = string.Empty;
                }
            }

            return execRes;
        }
예제 #2
0
        private string GetInsertSysRptTableSql(Hashtable values)
        {
            string database = string.IsNullOrEmpty(CliUtils.fLoginDB) ? report.EEPAlias : CliUtils.fLoginDB;
            ClientType clientType = CliUtils.GetDataBaseType(database);
            DBParameter dbParameter = new DBParameter(clientType);
            string sql = "";
            sql = "insert into " + SysRptDB.TableName + " (";

            foreach (DictionaryEntry de in values)
            {
                sql += de.Key + ",";
            }
            sql = sql.Remove(sql.Length - 1);
            sql += ")";

            sql += " values(";
            foreach (DictionaryEntry de in values)
            {
                if (clientType == ClientType.ctOleDB || clientType == ClientType.ctInformix)
                    sql += dbParameter.ParamTag + ",";
                else
                    sql += dbParameter.ParamTag + de.Key + ",";
            }
            sql = sql.Remove(sql.Length - 1);
            sql += ")";
            return sql;
        }
예제 #3
0
        private string GetUpdateSysRptTableSql(Hashtable values)
        {
            string database = string.IsNullOrEmpty(CliUtils.fLoginDB) ? report.EEPAlias : CliUtils.fLoginDB;
            ClientType clientType = CliUtils.GetDataBaseType(database);
            DBParameter dbParameter = new DBParameter(clientType);
            string sql = "";
            sql = "Update " + SysRptDB.TableName;
            sql += " set ";
            for (int i = 2; i < SysRptDB.sysTableColumns.Count; i++)
            {
                foreach (DictionaryEntry de in values)
                {
                    if (de.Key == SysRptDB.sysTableColumns[i])
                    {
                        if (clientType == ClientType.ctOleDB || clientType == ClientType.ctInformix)
                            sql += SysRptDB.sysTableColumns[i] + " = " + dbParameter.ParamTag + ",";
                        else
                            sql += SysRptDB.sysTableColumns[i] + " = " + dbParameter.ParamTag + de.Key + ",";
                    }
                }
            }
            sql = sql.Remove(sql.Length - 1);

            sql += " where ";
            for (int i = 0; i < 2; i++)
            {
                foreach (DictionaryEntry de in values)
                {
                    if (de.Key == SysRptDB.sysTableColumns[i])
                    {
                        if (clientType == ClientType.ctOleDB || clientType == ClientType.ctInformix)
                            sql += SysRptDB.sysTableColumns[i] + " = " + dbParameter.ParamTag + " and ";
                        else
                            sql += SysRptDB.sysTableColumns[i] + " = " + dbParameter.ParamTag + de.Key + " and ";
                    }
                }

            }
            sql = sql.Remove(sql.Length - 4, 4);
            return sql;
        }
예제 #4
0
        public ExecutionResult ExecuteSqlDesign(string sql, ExecuteMode executeMode, Hashtable htValues)
        {
            IDbConnection iDbConn = GetConnection(report.EEPAlias);
            #region Variable Definition
            ExecutionResult execRes = new ExecutionResult();
            //IDbConnection iDbConn = null;
            IDbCommand iDbCommand = null;
            IDbDataAdapter iDbDataAdapter = null;
            DataSet ds = new DataSet();
            IDbDataParameter dbParam = null;
            #endregion

            DBParameter dbParameter = new DBParameter(DBUtils.GetDatabaseType(iDbConn));
            try
            {

                if (iDbConn.State == ConnectionState.Closed)
                {
                    iDbConn.Open();
                }
                iDbCommand = iDbConn.CreateCommand();
                iDbCommand.CommandText = sql;
                if (htValues != null)
                {
                    foreach (DictionaryEntry de in htValues)
                    {
                        dbParam = iDbCommand.CreateParameter();
                        dbParam.ParameterName = dbParameter.ParamTag + de.Key;
                        dbParam.Value = de.Value;
                        if (de.Value != null)
                        {
                            if (de.Value.GetType().Name == "Byte[]")
                            {
                                if (iDbCommand.Connection is OleDbConnection)
                                    (dbParam as OleDbParameter).OleDbType = OleDbType.LongVarBinary;
                                else
                                    dbParam.DbType = DbType.Binary;
                            }
                            else
                            {
                                if (iDbCommand.Connection is OleDbConnection)
                                    (dbParam as OleDbParameter).OleDbType = OleDbType.VarChar;
                                else
                                    dbParam.DbType = DbType.String;
                            }
                        }
                        else
                        {
                            if (iDbCommand.Connection is OleDbConnection)
                                (dbParam as OleDbParameter).OleDbType = OleDbType.VarChar;
                            else
                                dbParam.DbType = DbType.String;
                            dbParam.Value = "";
                        }
                        iDbCommand.Parameters.Add(dbParam);
                    }
                }

                if (executeMode == ExecuteMode.Select)
                {
                    iDbDataAdapter = DBUtils.CreateDbDataAdapter(iDbCommand);
                    DataTable dt = new DataTable();
                    if (iDbCommand.Connection is OleDbConnection)
                    {
                        (iDbDataAdapter as OleDbDataAdapter).Fill(dt);
                        ds.Tables.Add(dt);
                    }
                    else
                        iDbDataAdapter.Fill(ds);
                    //iDbDataAdapter.Fill(ds);
                    execRes.Anything = ds.Tables[0];
                }
                else
                {
                    iDbCommand.ExecuteNonQuery();
                }

                execRes.Status = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                iDbConn.Close();
                //iDbConn.Dispose();

            }

            return execRes;
        }