Beispiel #1
0
        private string GeraWhereRelacionamento()
        {
            StringBuilder str = new StringBuilder();
            string        sCampoPai;
            string        sValor;

            foreach (Relacionamento ligacao in objCamposRelacionamento)
            {
                sCampoPai = ligacao.CampoPai;
                sValor    = HlpDbFuncoesGeral.RetornaStrValor(
                    objPaiDAO.RegistroAtual[sCampoPai],
                    objPaiDAO.EstruturaDataTable.Columns[sCampoPai]);
                if (str.Length > 0)
                {
                    str.Append(" AND ");
                }
                str.Append("(" + ligacao.CampoFilho + " = " + sValor + ")");
            }
            if (str.Length == 0)
            {
                throw new Exception(
                          "Não foram definidos os campos de " +
                          "relacionamento entre as tabelas " +
                          this.objDAO.Tabela + " e " + this.objPaiDAO.Tabela + "!!!");
            }

            return(str.ToString());
        }
Beispiel #2
0
        private string GeraWhereChavePrimaria(bool bChaveNula)
        {
            StringBuilder str = new StringBuilder();

            foreach (string sCampo in objChavePrimaria)
            {
                if (str.Length > 0)
                {
                    str.Append(" AND ");
                }
                str.Append("(" + sCampo);
                if (bChaveNula)
                {
                    str.Append(" IS NULL)");
                }
                else
                {
                    str.Append(" = " + HlpDbFuncoesGeral.RetornaStrValor(
                                   ValoresPrimarios[sCampo],
                                   objEstrutura.Columns[sCampo]) + ")");
                }
            }
            return(str.ToString());
        }
Beispiel #3
0
        public static string MontaExpressaoSql(TipoComando TipoExpressao,
                                               string sTabela, string sWhere, List <string> sCamposDesconsiderados,
                                               bool bDesconsideraNullUpdate, DataRow registro)
        {
            StringBuilder strExpressao = new StringBuilder();
            StringBuilder str1         = new StringBuilder();
            StringBuilder str2         = null;
            string        sValor;
            bool          bUsaWhere = (!sWhere.Trim().Equals(String.Empty));
            bool          bContinua;

            if (TipoExpressao == TipoComando.Insert)
            {
                strExpressao.Append("INSERT INTO " + sTabela);
                str2 = new StringBuilder();
            }
            else
            {
                if (bUsaWhere)
                {
                    if (TipoExpressao == TipoComando.Update)
                    {
                        strExpressao.Append("UPDATE " + sTabela + " SET ");
                    }
                    else if (TipoExpressao == TipoComando.Delete)
                    {
                        strExpressao.Append("DELETE FROM " + sTabela);
                    }
                }
            }

            if (strExpressao.Length == 0)
            {
                return(String.Empty);
            }

            if ((TipoExpressao == TipoComando.Insert) ||
                (TipoExpressao == TipoComando.Update))
            {
                string sCampo;

                foreach (DataColumn campo in registro.Table.Columns)
                {
                    try
                    {
                        sCampo = campo.ColumnName;
                        if (sCampo.StartsWith("CAMPO"))
                        {
                            continue;
                        }
                        if ((sCamposDesconsiderados != null) &&
                            (sCamposDesconsiderados.Contains(sCampo)))
                        {
                            continue;
                        }
                        if (campo.DataType.Equals(typeof(System.Byte[])))
                        {
                            continue;
                        }

                        sValor = HlpDbFuncoesGeral.RetornaStrValor(registro[campo], campo);
                        if (campo.ToString().ToUpper().Equals("ST_LIBERADO_TOTALMENTE") && sValor.Equals("NULL"))
                        {
                            sValor = "'A'";
                        }
                        if (TipoExpressao == TipoComando.Insert)
                        {
                            //Renato - 25/09/2003 - OS 10603
                            if (!sValor.Equals("NULL"))
                            {
                                if (str1.Length > 0)
                                {
                                    str1.Append(',');
                                }
                                str1.Append(sCampo);
                                if (str2.Length > 0)
                                {
                                    str2.Append(',');
                                }
                                str2.Append(sValor);
                            }
                            ////////////////////////////////
                        }
                        else
                        {
                            bContinua = (!bDesconsideraNullUpdate);
                            if (!bContinua)
                            {
                                bContinua = (!sValor.Equals("NULL"));
                            }
                            if (bContinua)
                            {
                                if (str1.Length > 0)
                                {
                                    str1.Append(',');
                                }
                                str1.Append(" " + sCampo + " = " + sValor);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }

            if (TipoExpressao == TipoComando.Insert)
            {
                if ((str1.Length > 0) && (str2.Length > 0))
                {
                    strExpressao.Append(" (" + str1.ToString() + ") VALUES (");
                    strExpressao.Append(str2.ToString());
                    strExpressao.Append(")");
                }
                else
                {
                    strExpressao.Length = 0;
                }
            }
            else if (TipoExpressao == TipoComando.Update)
            {
                if (str1.Length > 0)
                {
                    strExpressao.Append(str1.ToString());
                }
                else
                {
                    strExpressao.Length = 0;
                }
            }

            if ((strExpressao.Length > 0) && (bUsaWhere))
            {
                strExpressao.Append(" WHERE " + sWhere);
            }
            return(strExpressao.ToString());
        }