powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Связанные переменные.
25 сообщений из 28, страница 1 из 2
Связанные переменные.
    #36270379
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грешно ли не использовать связанные переменные? Изучаю вот код на Java, одного знакомого, и у него всякое такое встречается:
Код: plaintext
"SELECT X,Y, MAX_WEIGHT FROM UNIT WHERE UNIT_ID=" + unit_id
Я в шоке, а он отвечает: "совместимость, чтобы на всех sql серверах работало." Что за сервера такие, в которых нельзя использовать связанные переменные? Или для них просто через JDBC не получается использовать связанные переменные?
...
Рейтинг: 0 / 0
Связанные переменные.
    #36270727
Фотография RT183.1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дьябло, хошь головоломку?
Надо по числу выдать номер Экселевской колонки в буквенной нотации:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 2  -> B

 52  -> AZ

 53  -> BA

 1234567  -> BRFGI
...
Рейтинг: 0 / 0
Связанные переменные.
    #36270817
Лосяш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoГрешно ли не использовать связанные переменные?
Грешно. Воспринимайте это как аксиому. Во первых вот . Во вторых оракл например кэширует планы выполнения запросов - и такие запросы с разными idшниками будет считать разными запросами, и каждый раз будет строить для них план выполнения заново. Более того - если такие "мусорные" запросы идут в большом количестве, то они будут "вышибать" планы выполнения для других запросов из кэша - в результате производительность базы может не на шутку просесть. Так было до версии 8i включительно. На более современных версиях не выяснял - но скорее всего все то же самое.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36270983
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛосяшXDiaBLoГрешно ли не использовать связанные переменные?
Грешно. Воспринимайте это как аксиому. Во первых вот . Во вторых оракл например кэширует планы выполнения запросов - и такие запросы с разными idшниками будет считать разными запросами, и каждый раз будет строить для них план выполнения заново. Более того - если такие "мусорные" запросы идут в большом количестве, то они будут "вышибать" планы выполнения для других запросов из кэша - в результате производительность базы может не на шутку просесть. Так было до версии 8i включительно. На более современных версиях не выяснял - но скорее всего все то же самое.
Ну не знаю как там с инъекциями, я ещё его код мало изучал, но насчёт многократного построения плана выполнения согласен, фигня получается, поэтому я и заострил внимание, на неиспользовании связанных переменных. Но всё таки, интересна ситуация в MySQL и MS SQL. Сейчас и в 2003 году, когда был написан сей код. Где-то там нельзя было использовать связанные переменные, или он просто сглупил, написав этот код? Я продолжу изучать этот код, и либо отрефакторю, либо мы с ним перепишем игру на C#+Flash. Изначально там было Java+JavaScript+HTML. СУБД можно использовать разные, он говорит старался всё делать по стандарту SQL.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36270985
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RT183.1Дьябло, хошь головоломку?
Надо по числу выдать номер Экселевской колонки в буквенной нотации:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 2  -> B

 52  -> AZ

 53  -> BA

 1234567  -> BRFGI

Всё фигнёй страдаешь? Хоть из запоя вышел, работу нашёл? А по теме топика ответить есть чего?
Модератор:
не понравился ответ
...
Рейтинг: 0 / 0
Связанные переменные.
    #36271006
Фотография RT183.1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> А по теме топика ответить есть чего?

Я даже не знаю, что такое "связанные переменные"
...
Рейтинг: 0 / 0
Связанные переменные.
    #36271294
АСУ ТПшник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично модератору.
Структурное мышление RT не похоже на структрурное мышление среднего программиста. Доводов не будет, но опыт наверное применить стоит.
Ой, а у вас набирать можно буквы как хочешь?
...
Рейтинг: 0 / 0
Связанные переменные.
    #36271303
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoЯ в шоке, а он отвечает: "совместимость, чтобы на всех sql серверах работало." Что за сервера такие, в которых нельзя использовать связанные переменные? Или для них просто через JDBC не получается использовать связанные переменные?
Флаг ему в руки, но классический стандарт Ansi SQL существует только на бумаге. Что он будет делать со следующим запросом, который работает в Oracle но совершенно не так выглядит в MS-SQL?

Код: plaintext
select * from mytable where rownum< 1000 ;

Очевидно, что надо запасаться двумя вариантами написания запроса.

Я портировал одну БД c MS-SQL на Oracle и наступил на такое огромное количество граблей, что мог написать целую книгу по best practices в этой области. Одни только JOINS чего стоят.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36271648
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Не, ну я так понял у него просто информация об объектах игры, хранится в базе. Запросы простейшие. Я ща в отпуске, как раз поизучаю подробнее что он там понаписал. Потом по всем пунктам с него спрошу, чем руководстовался. Причём я работал только с Ораклом, а у него игра изначально использовала MySQL, а теперь он хочет на MS SQL перейти. Причём говорит что поможет простая замена драйвера. Я проверю этот вопрос. Насчёт запросов я считаю таки нужны связанные переменные, и хоть немного ООП. Наследованием там и не пахнет, по 20 классов на несколько страниц каждый, в которых отличается пара букв. Жутковато. Классики ООП перевернулись бы в гробу, если бы не были ещё живы впрочем.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36271683
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoПричём говорит что поможет простая замена драйвера. Я проверю этот вопрос.
Простая подмена драйвера не поможет, если хотите использовать Bind-переменные ИМХО. Вам в любом случае потребуются врапперы для типов данных конкретной СУБД.

Наследованием там и не пахнет, по 20 классов на несколько страниц каждый, в которых отличается пара букв. Жутковато. Классики ООП перевернулись бы в гробу, если бы не были ещё живы впрочем.Рефакторить надо. Я-бы это сделал в первую очередь.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36271792
donky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XDiaBLo,

Для приведенного примера - тяжелой линейкой по пальцам, почему - по топику уже объяснили.
Но, в некоторых редких случаях (в основном в хранилищах данных), это может здорово помочь оптимизатору, и такой подход будет иметь право на жизнь.
А в данном случае - линейкой по пальцам...
...
Рейтинг: 0 / 0
Связанные переменные.
    #36277944
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
donkyXDiaBLo,

Для приведенного примера - тяжелой линейкой по пальцам, почему - по топику уже объяснили.
Но, в некоторых редких случаях (в основном в хранилищах данных), это может здорово помочь оптимизатору, и такой подход будет иметь право на жизнь.
А в данном случае - линейкой по пальцам...
Да просто он практик, книжек умных не читает, считает что всё можно по документации узнать. Спорить с ним сложно, тем более я в другой крайности, больше книжки изучаю, чем практикую. Вместе возможно хорошая команда получится, каждый другого будет от крайностей спасать. Попробуем.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36277952
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonXDiaBLoПричём говорит что поможет простая замена драйвера. Я проверю этот вопрос.
Простая подмена драйвера не поможет, если хотите использовать Bind-переменные ИМХО. Вам в любом случае потребуются врапперы для типов данных конкретной СУБД.

Наследованием там и не пахнет, по 20 классов на несколько страниц каждый, в которых отличается пара букв. Жутковато. Классики ООП перевернулись бы в гробу, если бы не были ещё живы впрочем.Рефакторить надо. Я-бы это сделал в первую очередь.
Я тоже думаю про рефакторинг. Впрочем всё возможно будет переписано на C# и Flash, но я думаю пока изучаю готовый код на Java, можно и порефакторить будет, чтобы лучше понять код. Ща правда всё ещё Флешем занят, думаю сначала доделаю одно дело, потом за другое браться буду, нечего дёргаться.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36277996
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoВместе возможно хорошая команда получится, каждый другого будет от крайностей спасать. Попробуем.

Как из слепого с глухим ?
...
Рейтинг: 0 / 0
Связанные переменные.
    #36278303
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)XDiaBLoВместе возможно хорошая команда получится, каждый другого будет от крайностей спасать. Попробуем.

Как из слепого с глухим ?
Что уж вы так жестоко то?
...
Рейтинг: 0 / 0
Связанные переменные.
    #36278600
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoGluk (Kazan)XDiaBLoВместе возможно хорошая команда получится, каждый другого будет от крайностей спасать. Попробуем.

Как из слепого с глухим ?
Что уж вы так жестоко то?

Ради красного словца ...
Но серьезно, не полезнее ли найти того кто одинаково силен и в практике и в теории ???
...
Рейтинг: 0 / 0
Связанные переменные.
    #36278646
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan),

Ну так у этого человека уже игра готовая есть, только до ума довести осталось. Не на каждом углу такие валяются.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36278826
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoGluk (Kazan),

Ну так у этого человека уже игра готовая есть, только до ума довести осталось. Не на каждом углу такие валяются.

Ну лично меня мало интересуют те, что на углу валяются :)
...
Рейтинг: 0 / 0
Связанные переменные.
    #36280641
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoГрешно ли не использовать связанные переменные? Изучаю вот код на Java, одного знакомого, и у него всякое такое встречается:
Код: plaintext
"SELECT X,Y, MAX_WEIGHT FROM UNIT WHERE UNIT_ID=" + unit_id
Я в шоке, а он отвечает: "совместимость, чтобы на всех sql серверах работало." Что за сервера такие, в которых нельзя использовать связанные переменные? Или для них просто через JDBC не получается использовать связанные переменные?
универсально не получится всё равно
Если нужно поддерживать несколько субд, то в программе нужно работать с интерфейсом, а не функциями, и для каждой субд реализовывать этот интерфейс. Т.к. различия слишком большие, в некоторых например нужно названия полей и таблиц писать в `.
И только связанные переменные, а уж в вебе тем более.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36280888
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas,
Тогда выход именно один, для каждой СУБД делать свой набор запросов в обёртке, и через интерфейс, что впрочем вы и сказали. Я кроме Оракла, ни с какой СУБД толком не работал, но в курсе что стандарт оставляет многое на усмотрение разработчиков СУБД. Просто думаю что в случае таких простейших запросов, можно найти некоторую универсальность.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36281013
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLobarrabas,
Тогда выход именно один, для каждой СУБД делать свой набор запросов в обёртке, и через интерфейс, что впрочем вы и сказали. Я кроме Оракла, ни с какой СУБД толком не работал, но в курсе что стандарт оставляет многое на усмотрение разработчиков СУБД. Просто думаю что в случае таких простейших запросов, можно найти некоторую универсальность.
Ну так и делать реализацию для некой абстрактной субд с виртуальными методами, а от неё наследовать и переопределять процедуры с какойто небольшой спецификой, ну а если савсем всё по другому реализовывать заново.
Просто смысл в подходе, таким образом можно расширять поддерживаемые субд не пределывая "костыли", а просто добавляя реализации интерфейса.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36282507
Лосяш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasНу так и делать реализацию для некой абстрактной субд с виртуальными методами, а от неё наследовать и переопределять процедуры с какойто небольшой спецификой, ну а если савсем всё по другому реализовывать заново.
А еще лучше не изобретать велосипеды, а юзать Hibernate. Меняешь там диалект в зависимости от СУБД (одна строчка в конфиге), и забот не знаешь.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36282630
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛосяшbarrabasНу так и делать реализацию для некой абстрактной субд с виртуальными методами, а от неё наследовать и переопределять процедуры с какойто небольшой спецификой, ну а если савсем всё по другому реализовывать заново.
А еще лучше не изобретать велосипеды, а юзать Hibernate. Меняешь там диалект в зависимости от СУБД (одна строчка в конфиге), и забот не знаешь.
а если логика в ХП на сервере.
А если диалект не поддерживается или багнутый (ждать фикса?)
От задачи зависит. если толстого клиента не нужно.
...
Рейтинг: 0 / 0
Связанные переменные.
    #36282698
Лосяш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasЛосяшbarrabasНу так и делать реализацию для некой абстрактной субд с виртуальными методами, а от неё наследовать и переопределять процедуры с какойто небольшой спецификой, ну а если савсем всё по другому реализовывать заново.
А еще лучше не изобретать велосипеды, а юзать Hibernate. Меняешь там диалект в зависимости от СУБД (одна строчка в конфиге), и забот не знаешь.
а если логика в ХП на сервере.
А если диалект не поддерживается или багнутый (ждать фикса?)
От задачи зависит. если толстого клиента не нужно.
а что мешает вам использовать Hibernate в толстом клиенте?
...
Рейтинг: 0 / 0
Связанные переменные.
    #36282718
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛосяшbarrabasЛосяшbarrabasНу так и делать реализацию для некой абстрактной субд с виртуальными методами, а от неё наследовать и переопределять процедуры с какойто небольшой спецификой, ну а если савсем всё по другому реализовывать заново.
А еще лучше не изобретать велосипеды, а юзать Hibernate. Меняешь там диалект в зависимости от СУБД (одна строчка в конфиге), и забот не знаешь.
а если логика в ХП на сервере.
А если диалект не поддерживается или багнутый (ждать фикса?)
От задачи зависит. если толстого клиента не нужно.
а что мешает вам использовать Hibernate в толстом клиенте?
то что как раз не нужен толстый клиент
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Связанные переменные.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]