|
Как создать @class
|
|||
---|---|---|---|
#18+
Имеется БД в ней класс BDHistory2017.m06.TcenaH1 Стандартно мы делаем\создаем класс через Код: sql 1.
С этим проблем нет. Также можно создать класс и так (во всяком случае он создается в видепеременной) Код: sql 1.
Но возникла задача создавать класс через переменную Делаю так Код: sql 1. 2.
И вот так он не создаётся. Пишет, что <UNDEFINED> *class("BDHistory2017.m06.TcenaH1") Хотя используются те же самые ковычки. Всё бы ничего, но хочется автоматизировать замену классов через переменные. В инструкциях через OREF получаю то же самое. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Обратите внимание на последнюю запись. . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 13:48 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
О-О-О, попробуй так Код: plaintext 1.
Код: plaintext 1.
Откуда взялась уверенность что Код: plaintext
class в данном случае просто переменная, и конечно он будет ругаться что UNDEFINED, потому что такая переменная не определена ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 17:16 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
DAiMorОткуда взялась уверенность что Код: plaintext
class в данном случае просто переменная, и конечно он будет ругаться что UNDEFINED, потому что такая переменная не определена Код: sql 1.
Использовал потому что частенько в разных вариантах кода использовал оператор косвенности (@). И потому что подумал что и здесь этот фокус так же пройдет. Вариант Код: sql 1.
выдавал ошибку, вот и остановился на Код: sql 1.
как как ошибки при таком варианте не было, значит двигался в верном направлении. Также я на 100%был уверен, что Код: sql 1.
это служебная функция, так типа "Do" или "if" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 17:34 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
DAiMorпопробуй так Код: plaintext 1.
Мне этот вариант понравился больше. По мне так он понятнее. Хочу только сделать одно уточнение. obj может иметь любое название. К примеру NewBD или НоваяБД А затем как обычно : Код: sql 1. 2. 3. 4. 5.
Это очень удобно плавающая\косвенная переменная в названии БД, когда код длинный и в нескольких местах встречается эта БД, а в процессе работы эти БД постоянно меняются. А так в начале кода меняешь и все ТИП-ТОП или вообще из файла со списком БД берешь нужную, делаешь все необходимые операции с ней и приступаешь к следующей. . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 20:40 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
О-О-О, оно, конечно, здорово, когда язык позволяет всякое, но можно узнать, для чего все эти извращения? авторЭто очень удобно плавающая\косвенная переменная в названии БД, когда код длинный и в нескольких местах встречается эта БД, а в процессе работы эти БД постоянно меняются. А так в начале кода меняешь и все ТИП-ТОП или вообще из файла со списком БД берешь нужную, делаешь все необходимые операции с ней и приступаешь к следующей.Вы какие-то просто чудовищные вещи пишете. Можно бы вам пожелать сопровождать всю жизнь такой код, но такое страшное проклятие в моих глазах вы еще не заслужили. Чем вас не устраивают обычные переменные? Что вы собираетесь делать дальше с переменными, имени которых даже не знаете? авторкогда код длинныйКогда код длинный, надо его переписывать, чтобы он был коротким и понятным, а не запутывать его еще больше. И да, вы путаете понятия класса и объекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 21:25 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
Блок А.Н. Вы какие-то просто чудовищные вещи пишете. Можно бы вам пожелать сопровождать всю жизнь такой код, но такое страшное проклятие в моих глазах вы еще не заслужили. Чем вас не устраивают обычные переменные? Что вы собираетесь делать дальше с переменными, имени которых даже не знаете? Секрета нет. Я этими вещами - переменными в названии БД еще не пользовался, хотя косвенными переменными работал и в моём случае - они существенно ускорят обработку данных. Но возникла необходимость анализа котировок нефти. А она имеет странную особенность каждый месяц продолжать фьючерс, но на другой период. Практика показывает, что сшивание графиков разных фьючерсов смысла не имеет, поэтому, под каждый месяц-фьючерс необходима своя БД котировок за предшествующий период от 1 до 6 месяцев. Всего их набегает 180 Баз Данных и это по минимуму. Такая же ерунда по золоту, по меди и по другим мировым спекулятивным инструментам. Для анализа стратегии требуется на каждые новые правила проанализировать историю. Теперь представьте мою работу вручную, если я буду менять каждый раз в коде названия всех этих 180 БД. и это хорошо, если при этом я ещё и не ошибусь! А теперь подумайте, насколько упростилась моя жизнь с обработкой такого массива БД с этой косвенной переменной. Создаёшь отдельный файл с перечнем этих БД и вуаля, обработка автоматом пошла. Надеюсь - что аргумент весомый. И да, вы путаете понятия класса и объекта. Скорее всего да, но я пишу на специфическом\обывательском уровне, в котором замешано куча всего от Каше до HTML с CSS и SVG фрэймами. Слишком специфичны у меня требования, но я точно знаю что я хочу получить от того или иного кода - и в этом меня большое преимущество, т.к. заказчики очень часто сами не знают чего хотят. . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 22:51 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
О-О-О, Какие интересные задачи вы решаете оказывается. Хотя я думаю что вы еще и БД с таблицами путаете. Как то я все таки сомневаюсь что у вас все таки 180 БД, может все таки это таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 22:59 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
О-О-О, Мне кажется, вы ещё таблицу называете БД. Ну, положим, вам нужны для каждой котировки отдельная таблица. Для меня это сомнительно, так как структура данных все равно одинакова, но спорить с вами не буду. Но зачем вы переменные разные то используете? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 23:05 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
Есть еще один вопрос, но он больше вдогонку. Раньше, когда я явно задавал им класса, я мог пользоваться определением последней строки Код: sql 1. 2. 3. 4.
НЕ сказать, что этот кусок кода критичен для меня, но я к нему уж как то привык (при сшивании потока данных). Теперь же у меня возникла проблема. С косвенной переменной названия класса я не могу запустить этот код, перепробовал разные варианты, залез в документацию. Ничего не нашёл. Как вариант, придумал костыль-замену, но он меня немного напрягает: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Вопрос в следующем - можно ли как то с косвенной переменной названия класса использовать Код: sql 1.
Разница в 0,004 сек не напрягает, но это 1100 строк, а если их там 1'500'000, то это уже 5-6 сек на каждый класс, а это уже ощутимое время при обработке большого массива данных. . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 23:05 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
DAiMor, Да, таблицы. Баз Данных 3-4. Хотя рабочих 2. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 23:06 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
Блок А.Н.О-О-О, Мне кажется, вы ещё таблицу называете БД. Ну, положим, вам нужны для каждой котировки отдельная таблица. Для меня это сомнительно, так как структура данных все равно одинакова, но спорить с вами не буду. Но зачем вы переменные разные то используете? Да, отдельные таблицы, я их для себя обзываю БД - так как они несут отдельные законченные данные для меня. Но зачем вы переменные разные то используете? не совсем понимаю вопрос. как же еще обрабатывать если разные таблицы между собою никак не связаны и каждая таблица обрабатывается отдельно. Често говоря они раньше были объеденены но толку от этого ноль, так что я их разъединил. Но зачем вы переменные разные то используете? Разные таблицы = разный код. Данные то берутся из разных мест. Или есть вариант как это сшить-исправить-упростить? Вот так примерно выглядит новая структура таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 23:12 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
интересует вот этот вопрос, точнее ответ на него http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1266064&msg=20647611 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 23:20 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
О-О-ОВопрос в следующем - можно ли как то с косвенной переменной названия класса использовать Код: sql 1.
например как то так Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 23:28 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
DAiMor, Ваш код работает, но Можно проще Код: sql 1. 2.
Проверил - работает и возвращает корректный\реальный результат. Я только не совсем понимаю, почему код Код: sql 1. 2. 3.
Не работает? Особенно с одним @. . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2017, 23:43 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
Глобал с данными можно автоматически по названию класса получать. Пример . ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2017, 00:28 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
О-О-ОЯ только не совсем понимаю, почему код Код: sql 1. 2. 3.
Не работает? Особенно с одним @. Ой, какой интересный неожиданный вопрос. а что вообще делает оператор косвенности @? в первом случае он пытается получить значение из переменной bd("") и конечно он не получит ответ, будет ошибка SUBSCRIPT, но еще и $order требует чтобы переменная была с индексом, чтобы было понятно от чего получить следующий индекс. а вторая строка, рабочая, но только она обходит на глобал а локальную переменную bd и пытается вернуть последний индекс для нее. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2017, 00:46 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
О-О-ОЭто очень удобно плавающая\косвенная переменная в названии БД.Извиняюсь, я вас, кажется, неправильно понял. Думал, что вы хотите сделать что-то вроде Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2017, 06:11 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
О-О-ОDAiMor, Ваш код работает, но Можно проще Код: sql 1. 2.
Проверил - работает и возвращает корректный\реальный результат. Хм, DAiMor предположил, что в переменной у Вас будет имя класса. Затем он Вам показал как из имени класса получить имя глобала с помощью конкатенации. А затем уже полученное имя глобала использовать для необходимых действий. Вы показываете пример кода, где переменной сразу присваиваете имя глобала и заявляете, что так проще. Конечно проще, если имя глобала сразу известно Но Вы ранее об этом не упоминали, речь шла только о имени класса в переменной. Отсюда вопрос: где имя глобала брать будете, чтобы было "...но Можно проще"? Либо чего-то недоговариваете, либо есть проблема с логикой. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2017, 10:22 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
П.С.М. Отсюда вопрос: где имя глобала брать будете, чтобы было "...но Можно проще"? Либо чего-то недоговариваете, либо есть проблема с логикой. НОЧЬ, вечер, ВЫХОДНОЙ. Я ответами остался доволен. Получил ответы на вопросы, которые позволили существенно оптимизировать код. С учётом того, что я не являюсь проф программистом, я позволяю себе использовать определения, которые комфортны для меня. И так уж получилось, что они расходятся с общепринятыми. Так БД для меня и "каноническое определение" имеют совершенно разные смыслы. Что касается непосредственно поставленной задачи: Есть куча таблиц (они же для меня классы (так их обзывает Каше) они же для меня БД (так как носят завершенную структурированную информацию)) исторических данных (см скриншот выше). Их нужно было поочереди обработать и выдать определённый результат. Вручную менять имена классов было очень неудобно, долго и с большой вероятностью ошибки при замене имени класса. Требовалось автоматизировать этот процесс через переменную, которую я обзывал косвенной, т.к. использовался оператор косвенности = @ Ну вот в целом и вся задачка. . ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2017, 10:18 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
А вот почему именно такая структура - каждый видит поставленную задачу по своему. Это уже 8, 12 или 18 вариант логического построения. Все предыдущие терпимы для Российской биржи (акции на ММВБ Российских эмитентов) и напрочь не годятся для "Круглосуточников". . ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2017, 10:21 |
|
Как создать @class
|
|||
---|---|---|---|
#18+
О-О-Оя не являюсь проф программистом, я позволяю себе использовать определения, которые комфортны для меня. И так уж получилось, что они расходятся с общепринятыми.Скажите, как зайти к вам на фьючерсы, чтобы прикупить форексов? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2017, 13:25 |
|
|
start [/forum/topic.php?fid=39&msg=39489638&tid=1556334]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
239ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
585ms |
get tp. blocked users: |
1ms |
others: | 320ms |
total: | 1185ms |
0 / 0 |