예제 #1
0
 public override ISQLBuilder EndOfStatement(SQLStatementType statementType = SQLStatementType.DML)
 {
     try {
         return(base.EndOfStatement(statementType));
     } finally {
         AddDelimiterIfApplicable();
     }
 }
예제 #2
0
파일: DBFactory.cs 프로젝트: rogerluo/Stror
 public static string GetStatementByDBType(SQLStatementType statetype, DBType dbtype, object other)
 {
     string statement;
     switch (statetype)
     {
         case SQLStatementType.EXISTSLM:
             {
                 switch (dbtype)
                 {
                     case DBType.MSSQL:
                         {
                             statement = string.Format("select count(*) from master.dbo.sysobjects where xtype = 'U' and object_id(N'{0}') = id", Settings.Default.LMTABLE);
                         }
                         break;
                 }
             }
             break;
     }
     return null;
 }
예제 #3
0
        public async Task <object> CustomQuery(SQLStatementType type, string query)
        {
            return(await Task.Run(() =>
            {
                using (SqlConnection con = new SqlConnection(connectionString))
                {
                    SqlCommand cmd = new SqlCommand(query, con);
                    con.Open();
                    try
                    {
                        switch (type)
                        {
                        case SQLStatementType.SELECT_LIST:
                            try
                            {
                                DataList dataList = new DataList();
                                using (SqlDataReader reader = cmd.ExecuteReader())
                                {
                                    if (reader.HasRows)
                                    {
                                        while (reader.Read())
                                        {
                                            DataRow row = new DataRow();
                                            for (int i = 0; i < reader.FieldCount; i++)
                                            {
                                                row.Set(reader.GetName(i), reader.GetValue(i));
                                            }
                                            dataList.Add(row);
                                        }
                                    }
                                    dataList.Error = ERROR.NoError;
                                    return (object)dataList;
                                }
                            } catch (Exception)
                            {
                                DataList error = new DataList();
                                error.Error = ERROR.HasError;
                                return error;
                            }

                        case SQLStatementType.DELETE:
                            try
                            {
                                cmd.ExecuteNonQuery();
                                con.Close();
                                return true;
                            }
                            catch (Exception)
                            {
                                return false;
                            }

                        default:
                            return true;
                        }
                    } catch (Exception)
                    {
                        return false;
                    }
                }
            }));
        }
예제 #4
0
 public override ISQLBuilder EndOfStatement(SQLStatementType statementType = SQLStatementType.DML)
 {
     this.Emit(StatementTerminator).NewLine();
     base.EndOfStatement(statementType);
     return(this);
 }
예제 #5
0
 public override ISQLBuilder EndOfStatement(SQLStatementType statementType = SQLStatementType.DML)
 {
     Emit(";").NewLine();
     return(base.EndOfStatement(statementType));
 }
예제 #6
0
 public static SQLBuilderCommand EndOfStatement(SQLStatementType sqlStatementType = SQLStatementType.DML)
 {
     return(new EndOfStatementCommand(sqlStatementType));
 }
예제 #7
0
 public EndOfStatementCommand(SQLStatementType sqlStatementType)
 {
     StatementType = sqlStatementType;
 }
예제 #8
0
 public virtual ISQLBuilder EndOfStatement(SQLStatementType statementType = SQLStatementType.DML)
 {
     _internalBuilder.EndOfStatement(statementType);
     return(this);
 }
예제 #9
0
 public virtual ISQLBuilder EndOfStatement(SQLStatementType statementType = SQLStatementType.DML)
 {
     SetCurrentStatementType(statementType);
     AdvanceNextStatement();
     return(this);
 }
예제 #10
0
 protected ISQLBuilder SetCurrentStatementType(SQLStatementType statementType)
 {
     CurrentStatement = Tuple.Create(statementType, CurrentStatement.Item2);
     return(this);
 }