1. C# / Говнокод #6783

    +115

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    private object[] select ( string tablename, Type type, string addict ) 
            {
                object[] returned_objects = new object[0];
                string sql = "SELECT ";
                sql += this.buildFieldNames( type );
                sql += " FROM `" + tablename + "`" + addict;
                MySqlDataReader reader = this.TryQueryReader( sql );
                while (reader.Read( ))
                {
                    var obj = Activator.CreateInstance( type );
                    FieldInfo[] fields = type.GetFields( );
                    foreach (FieldInfo finfo in fields)
                    {
                        if (finfo.FieldType == typeof( int ))
                        {
                            finfo.SetValue( obj, reader.GetInt32( finfo.Name ) );
                        }
                        else if (finfo.FieldType == typeof( bool ))
                        {
                            if (reader.GetString( finfo.Name ).Equals( "true" ))
                            {
                                finfo.SetValue( obj, true );
                            }
                            else
                            {
                                finfo.SetValue( obj, false );
                            }
                        }
                        else if (finfo.FieldType == typeof( float ))
                        {
                            finfo.SetValue( obj, reader.GetFloat( finfo.Name ) );
                        }
                        else if (finfo.FieldType == typeof( double ))
                        {
                            finfo.SetValue( obj, reader.GetDouble( finfo.Name ) );
                        }
                        else if (finfo.FieldType == typeof( string ))
                        {
                            finfo.SetValue( obj, reader.GetString( finfo.Name ) );
                        }
                    }
                    provider.IncreaseLength( ref returned_objects, 1 );
                    returned_objects.SetValue( obj, returned_objects.Length - 1 );
    
                }
                reader.Close( );
                return returned_objects;
            }

    самопальный орм, нот комментс

    Запостил: glilya, 30 Мая 2011

    Комментарии (18) RSS

    • когда я ему рассказал про нхибернейт он очень удивился
      Ответить
      • инициативу людей нужно уважать, и поддерживать стремление написать аналог того, что уже есть, только со своими блек джеком и шлюхами.

        я, например, таким образом познаю изнутри, как это работает. Взять готовое и херачить на нем - это хуйня. А вот изобрести свой велосипед, думать и мыслить во время его создания - это оргазм для мозга.
        Ответить
        • а если взять чужой код, и копаться в нем, то мы избавляемся от двух ошибок - тратить время на написание существующего, и тратить время на написание неудачного :)
          Ответить
          • Вы в чем то правы. Но в Вашем примере очень легко столкнуться с ситуацией когда "copy-paste без палива". Ну а чо, я ж начал этот код писать, ну подумаешь что накопипастил, да похуй :))
            Ответить
            • в вашем случае аналогичная ситуация драматичнее. Если кодер не умеет размышлять и учиться, а только как собачка Павлова способна на рефлексы, то тут ничего не поможет, кроме изоляции от компа
              Ответить
              • > как собачка Павлова
                разжалован из приматов в псовые?
                Ответить
              • я лично предпочитаю сначала придумать сам, а уж только потом воспользоваться готовым
                Ответить
        • Вы еще молодой, да?
          Ответить
          • и поэтому во время оргазма для мозга случается преждевременная эякуляция
            Ответить
          • ну как сказать... не старый - точно)
            Ответить
    • мы такое лет 5 назад на C++/Qt изобретали
      Ответить
    • > нот комментс
      Ответить
    • mysql detected in #06
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий