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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
ALTER PROCEDURE [dbo].[GetVersion]
  @Version varchar(20) OUTPUT
AS
begin
  select @Version='1.7.1.5847'
end

Забавная ХП.

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

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

  • А мне нравится, не знаю почему, но нравится.
    А можно еще создать табличку с версиями и туда вставлять новые записи. Все-равно у базы нет версии билда.
    *косится с презрением на код* но тут похоже кто-то хранит версию клиента, работающего с БД.
    Ответить
    • Все бы, может быть, и ничего, но есть много "но".
      Чтобы получить результат от такой ХП нужно:
      1. Объявить @Version;
      2. Выполнить ХП;
      3. @Version=@Version OUTPUT;
      4. SELECT @Version.
      Казалось бы, ну ладно, что там, подумаешь, пара лишних строчек. Но выполнить такую ХП именно, как ХП, из, к примеру, приложения .NET невозможно.

      Если бы ХП имела более простой вид, например:
      create proc [dbo].[MBGetVersionTrue]
      as 
      begin
        select '5.18.1.1100'
      end

      этих танцев с бубном бы не было.
      Ответить
      • > Но выполнить такую ХП именно, как ХП, из, к примеру, приложения .NET невозможно.
        Что-то мне кажется это сомнительным, извините, разбираться сейчас времени нет. На предыдущем проекте ASP.NET сайт вполне комфортно работал с output параметрами ХП. Может местные .NET-разработчики подскажут, что Вы или я делаем не так.
        Ответить
      • --Но выполнить такую ХП именно, как ХП, из, к примеру, приложения .NET невозможно

        абсолютно правильный и корректный код

        если у кого-то кривые руки и он не умеет пользоваться процедурами с возврашаемыми параметрами то флаг ему в руки

        в данном случае SELECT играет роль оператора SET - афтар учи TSQL
        Ответить
        • SQL я знаю. И я знаю, что код работает. Вопрос такой - зачем здесь нужен output-параметр здесь вообще? Раз Вы такой умный и руки у Вас не кривые - объясните популярно, пожалуйста.
          Ответить
          • [KO]
            Потому что эту процедуру может использовать другая.
            А из другой процедуры ResultSet не получишь.
            [/KO]
            Ответить
            • В том-то и дело, что не использует эту ХП никакая другая ХП.
              Ответить
  • фееричный идиотизм.
    во вторую таблицу всенепременно нужно выложить html страницу с внедренными js и css, а также вставками пыхокода, которым посредством echo выведетмя jquery код, который ajax'ом возьмет из этой таблицы версию и выведет ее alert'ом.
    Ответить

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

Где здесь C++, guest?!

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


    8