Школоло / Говнокод #26699 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
Код с продакшена рабочего проекта :-D 

Dim got_new_batch As Boolean = False
Dim batch_numb As Integer = 0
Dim temp_batch As Integer = 0
While got_new_batch = False
temp_batch = objRandom.Next(400000000)
If check_batch_avaliable(temp_batch) = True Then
got_new_batch = True
batch_numb = temp_batch
End If
End While

Public Function check_batch_avaliable(ByVal batch_number As Integer) As Boolean

'CWC-7/11/2016-Rewritten to avoid runtime error

Dim RC As Integer = -1

Dim DBConnection As New IfxConnection(INFXConnectionStr_RPCentral)

'Try

Dim SQL As String = ""
SQL = " select first 1 batch_numb from " + System.Configuration.ConfigurationManager.AppSettings("InformixTable") + " where batch_numb = " & batch_number

Dim DBCommand As New IfxCommand(SQL, DBConnection)
DBCommand.CommandType = CommandType.Text

DBCommand.CommandTimeout = 200

DBConnection.Open()

RC = CInt(DBCommand.ExecuteScalar())

DBConnection.Close()

' Catch ex As Exception
' Dim ErrMsg = ex.Message


' Finally

If Not DBConnection Is Nothing Then

If DBConnection.State = ConnectionState.Open Then
DBConnection.Close()
End If

DBConnection = Nothing
End If


' End Try

If RC > 0 Then
Return False
Else
Return True
End If

End Function

Запостил: ageron ageron, (Updated )

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

  • Код с проекта в котором основной язык C# но главный цимус даже не в VB а втом ЧТО этот код делает с процом и БД 😀
    Ответить
  • да, процу и базе скучать не придется

    в бесконечном цикле выбирать рендомную запись этот лол

    Кстати, как часто он угадывает запись?
    Ответить
  • В чем вообще был прикол писать именно на VB ?
    До сих пор с него припекает, т.к попадались в т.ч забавные игрухи( типа того же Zombie Smashers ), написанных, видать, под WinXP.
    И, б.-же, сколько же оно требует всевозможных рантаймов, либ и проч необходимого для запуска( т.е даже на хрюше не всегда работало, а с семеркой и, тем более, десяткой - вообще веселуха )
    Ответить
    • >И, б.-же, сколько же оно требует всевозможных рантаймов, либ и проч необходимого для запуска
      msvbvm50.dll
      vbrun60sp6.exe занимал что-то около 10 метров.
      На фоне монструозных дотнетов и яв это ужос как много.
      Ответить
      • Говно, написанное на «VB», часто требует доустановки и регистрации (через regsvr32) всякого говна с расширением «.ocx». Проблема не в размере, а в том, что авторы забывают добавить это говно в инсталлятор. На машине автора всё работает — какие проблемы?
        Ответить
        • Это не проблемы VB.

          dll-hell и отсутствие пакетного менеджера общая болезнь виндов.

          Можно и в vc++ и в mingw наделать shared buildов и забыть добавить нужные dllки.
          Ответить
          • Доо сгенерируй %НАЗВАНИЕ_ТЕХНОЛОГИИ%-hell и с серьезным видом рассказывай об этом как о само-собой разумеющемся факте 🙂

            Конкретно в случае с виндой подобная проблема в особо запущенном состоянии была, почему-то, именно у VB..
            У остального - обычно хватало стандартной пачки редистов и все отлично работало.
            Ответить
            • Потому что ms vcredistы более популярные и обычно уже были установлены у юзеров.
              Ответить
              • Нет. Потому что установил конкретный редист и оно работает.

                В случае с ВБ - нередко, требуется дополнительно куча стороннего и условно-стороннего барахла, притом, нередко, хз_какого, т.к сама прога, вылетая с ошибкой, это сообщает далеко не всегда.
                Вот и думай потом, что конкретно и какой версии проге надобно, а так же - ну нафига было относительно простые проекты делать именно на ВБ, когда были всякие VC и иже с ними.
                Ответить
                  • Магия. Ты с какого ресурса пишешь ?
                    Спрашиваю, т.к у ГК много копий одно время было. Некоторые - даже с перепостом на основной ресурс творящегося на копии срача.
                    ..а потом - ломай голову, какого *** guestXXX сам с собой в десятке лиц спорит.
                    Но я давно на ГК не заходил. Чет ностальгия одолела и, как назло, сразу VB !:)

                    п.с: но я, все-таки, на целых 33 - 09 = 24 секунды раньше 🙂
                    Ответить
          • Можно. При попытке запуска программы выскочит сообщение, какой именно dll-ки не хватает.

            В случае же с VB выскакивает сообщение «Класс не зарегистрирован», причём зачастую даже названия класса нет. Причём выскочить оно может не сразу, а в процессе работы.
            Ответить
          • Это скорее проблема COM/ActiveX.

            Для С++ тебе нужен редист (анлесс ты статически склинкованный питуз), и ты понимаешь, что его надо бандлить (или линковаться статисськи).

            С VB таймлайн был таков.
            * Питуз установил себе Pituz.ocx (или он сам поставился с Internet Explorer Super Pack Plus).
            * У Питуза в реестре теперь есть COM объект с километровым CLSID GUID и .ocx файл к нему .
            * Прошло три года
            * Питуз запускает VB6.0, и видит там иконку петуза. Он уже и не знает/не помнит, откуда у него там эта иконка. Думает, что это часть VB6.0.
            * Перетаскивает иконку на формочку
            * Компилриует программу
            * Посылает получившийся .exe (с рантаймом VB) другу Зелибобе
            * Зелибоба не имеет Internet Explorer Super Pack Plus, и Pituz.ocx тоже не имеет
            * Зелибоба получает хуй.

            Умные Питузы умели собрать инсталлятор, который брал все нуждные .ocx, и регистрировал их (как requirements.txt или package.json)
            Ответить
      • Там проблема в том, что нередко требуется целая куча разных мелких модулей, о самом факте необходимости которых нередко даже сообщения об ошибках не говорят( запускаешь -> вылетает ошибка, например, 0х12345678 - и попробуй догадаться, какого черта приложению требуется ).
        Даже жаль чутка.. т.к некоторые игры были воистину годные и атмосферные.
        А из не_игр почти все благополучно ушло в небытие.

        Ну а дотнеты или явы - это отдельная история.
        Хотя, как минимум, там под конкретную версию обычно просто конкретный толстый установочник с тонной барахла, после установки которого все даже работает.. иногда.
        Ответить
        • > как минимум, там под конкретную версию обычно просто конкретный толстый установочник с тонной барахла, после установки которого все даже работает.. иногда.

          А разве с Microsoft Visual C++ Redistributable таких проблем не было? Вы скачали ms vcredist 2015, а для работы софта нужен ms vcredist 2008 или ms vcredist 2005.

          Под каждую версию дот.нета вообще нужно качать свой установщик. Тут без вариантов.

          C явой было проще: до 8ой версии можно было брать самую свежую и всё работало.
          В 9ой они много чего сломали, и теперь юзерам придётся держать несколько версий явы.
          Ответить
          • с редист таких проблем не было: они ставились side by side начиная с XP примерно

            на нагруженном софтом компе можно было увидиеть десять версий рантайма
            Ответить
            • >они ставились side by side начиная с XP примерно
              И с ними были проблемы.
              В xp не было 2005 и 2008.
              Ответить
              • ну так их надо было распостранять с софтом
                Ответить
                • Бинго!

                  > так их надо было распостранять с софтом
                  То есть проблема распространения зависимостей и либ это не какая-то особенность VB.
                  Ответить
          • >> Вы скачали ms vcredist 2015, а для работы софта нужен ms vcredist 2008 или ms vcredist 2005.

            Это вообще не проблема. У разных версий vcredist разные названия dll. Там сразу видно, какую версию нужно скачать и установить.
            Ответить
            • > сразу видно

              Ага, особенно сразу видно, когда винда тебе говорит "программа некорректно установлена, попробуйте её переустановить".
              Ответить
          • Забавно было, когда инсталлеру Qt нужен был vcredist, который он в себе и нёс.
            Ответить
            • Забавно будет, когда инкубаторы станут дохнуть от аллергии, коля себе яичный белок, в попытке сжечь меня.
              Ответить
      • >vbrun60sp6.exe занимал что-то около 10 метров.
        Что в 1999 году было овердохуя так-то
        Ответить
        • Я точно не помню.
          Но однозначно не меньше трёх дискет.
          Но там емнип были вообще всё. comctl32.ocx. А сам msvbvm весил куда меньше.
          Ответить
          • Я делал загрузочную дискету с «DOS», «Windows 3.1», «Сапёром» и «Пасьянсом». Если отрезать ненужное, это всё утаптывалось и запускалось (для чистоты эксперимента отключал винчестер).
            Ответить
    • Назови мне мейнстримовый язык с гц в 90х.
      Ответить
          • На каком десктопе? На x86?
            Представляю, как он тормозил
            Ответить
            • Он ещё и выглядел как говно. Как 3.11. Поэтому гуя на жаве в 90х - начале 2000х я почти не видел.
              В то время был васик, цпп и Делфи. Гц был только в васике и гуй он давал неплохой.
              Ответить
      • А зачем гц в 90-х ?
        Тем более, что речь о проектах 00-х...
        Ответить
        • В 90х VB действительно был нужен.

          С момента бандла дотнета в винду (примерно с семерки) писать на VB стало нужно никогда. Вообще.
          Ответить
          • VB кстати был первой пробой пера MS в реализации идеи IL-ассемблера, то есть байт-кода.
            Бейсик можно было конпелировать в псевдокод (P-code).
            Такие EXE-шники работали куда медленее, зато имели меньший объём. В целом фича была абсолютно бесполезной.

            Даже само название рантайма: msvbvm намекает.
            Ответить
            • У «Куикбейсика» тоже был байткод. Однако, он использовался для другого: для более компактного хранения исходников и для сокращения времени на парсинг. Была возможность восстановления текстового исходника из байткода. При работе в роли компилятора (если попросить его сделать экзешник), а не интерпретатора, «Куикбейсик» генерировал обычный нативный код.

              А вот в «VB» впервые решили использовать байткод не для зожатия исходников, а для рантайма.
              Ответить
              • Ещё MobileBasic для j2me хранил программы в байткоде, и деконпелировал перед чтением или редактированием, но можно было сохранить и текстовый исходник на карту мапяти.

                Кстати, во время редактирования код мог помещаться в поле не весь и приходилось выходить из режима редактирования, он конпелировал всё написанное говно, и потом надо опять открывать нужный кусочек, он деконпелировался и загружался в поле редактирования. Форматирование и регистр вне строковых литералов терялись конечно.

                Веселуха!
                Ответить
              • >для более компактного хранения исходников и для сокращения времени на парсинг

                Да.
                В том-то и дело что они почему-то не замахивались на кроссплатформенность. Только оптимизировали размер.

                А ко времени выхода VB размер бинарника перестал играть такую важную роль, в то время как просадка скорости в интерпретаторе была значительной.
                Ответить
            • В ту же эпоху были и другие конпеляторы, которые генерировали байткод (т. е. экзешник нёс в себе виртуальную машину): «Foxpro», «Clipper», «Clarion». Перечисленные языки объединяла одна особенность: интегрированная СУБД.
              Ответить
        • А зачем гц вообще? Почему именно в 90? Плюс визуальный гуй. Был ещё Делфи, но он без гц.
          Ответить
      • >Назови мне мейнстримовый язык с гц в 90х.
        VB6
        Там не нужно было морочить голову прямым управлением памятью и многопоточностью.
        В VB был простенький сборщик на счётчике ссылок.
        И хитрая псевдомногопоточность с DoEvents и таймерами.
        Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8