Объектно-ориентированное расширение SQL #253472


#0 by Ненавижу 1С
Возможно ли?
#0 by Ненавижу 1С
Возможно ли?
#1 by romix
1С это не оно?
#2 by Ненавижу 1С
нет конечно, в 1С не ООП, не СКЛ (кроме 8-ки)
#3 by MikleV
ничё не понял.
#4 by Джинн
Расширение какого SQL? Oracle имеет некое объектное подобие.
#5 by Ненавижу 1С
Стандартного SQL 9Х какой там. Речь о стандарте
#6 by Маленький Ежик
Я не поняла, чего имелось ввиду. Мона попдробнее?
#7 by Джинн
Нет.
#8 by SnarkHunter
Бред какой-то...
#9 by Elkmor
вот такое пойдет?
#10 by Elkmor
ООП - дело языка, а не базы данных. База данных - это структурированные ДАННЫЕ, а ДАННЫЕ и ОБЪЕКТ - разные вещи. Это как сравнить в паскале Record и Object.
#11 by Ненавижу 1С
Это как сравнить в паскале Record и Object. Думаешь большая разница? просто процедуры управления рекордом "засунули внутрь" и получился обжект
#12 by NS
Тут тоже самое. Точка - это еще не объект. Record это не класс, это запись.
#13 by Кецалькоатль
ООП и SQL - несовместимы SQL - это алгебра, реляционная алгебра
#14 by Волшебник
Так, к слову... OQL (Object Query Language) XQuery: язык запросов XML
#15 by Elkmor
Учи матчасть! :))
#16 by Elkmor
Хитро! ;))
#17 by прролдд
А кецалькоатль в чем-то прав. SQL- это просто алгебра, а для ООП есть "идейное" обоснование?
#18 by Волшебник
Иногда практика опережает теорию.
#19 by Ненавижу 1С
ООП и СКЛ: Класс - реляционная таблица + методы работы с записями Объект - запись в таблице Data member - столбцы таблицы Инкапсуляция - отсутствует или, скажем так, становится ненужной. Изменения столбца с помощью триггера влияют на логику Наследование - на уровне внешних ключей, дочерние классы имеют ссылку на родительский, в свою очередь родительский имеет поле отвечающее за тип дочерних объектов Полиморфизм - на уровне перевызов методов в неких "стыковочных методах"
#20 by Ненавижу 1С
Расширения СКЛ: 1. в операторах SELECT, INSERT, UPDATE описываются не только поля данного класса, но и родительских 2. для обращения к текущему объекту возможно писать UPDATE OBJECT=myObject .... 3. выполнения метода у нескольких объектов класса: EXEC Method FROM myClass WHERE ... 4. ссылочные типы - внешние ключи на другие классы, позволяют писать "через точку": SELECT Persone.Department.Organization as Org, SaleSum FROM Sale GROUP BY Org
#21 by France
есть такое расширение.. и над МС СКЛ и над оракл.. это Аксапта с его X++ и Морфикс))..
#23 by France
мля.. опять одноэсники изобретают велосипед пита...
#25 by Ay49Mihas
Есть класс задач - ORM называется. А есть объектные черты SQL, закреплены в стандартах SQL 99 и более поздних.
#26 by Кецалькоатль
Есть специальный язык, OCL (Object Constraint Language - язык объектных ограничений), по сравнению с SQL, оперирующим двумерными таблицами, OCL оперирует множеством объектов (включая типы). Назван так, потому что выборка в OCL начинается с выборки всех объектов базы (не физически конечно), а затем конструкции языка ограничивают этот набор. Допустим есть классы с атрибутами (во вторых скобках второй конец ассоциации): Country (Name) (Authors Publishers) Author (Name, Country) (Books) Publisher (Name, Country) (Books) Book (Authors, Publishers) Выбрать всех авторов, которые издавались в России, например: Country->allInstances->select(Name = 'Russia').Publishers.Books.Authors
#27 by Кецалькоатль
По объектной модели (метаданным) OCL запрос элементарно транслируется в SQL
#33 by dimzon
+1 lol открытия прямо в стиле "Гения 1С" т.н. "постреляционные СУБД" уже много лет как существуют, например cache + целый ряд o/r-маперов с поддержкой OQL, тот-же hybernate
#37 by Ненавижу 1С
28-32,34-36 что это?
#38 by Vozhd
Это пример ОО-расширения SQL...
#39 by Ненавижу 1С
а впереди и сзади какие то символы это что?
#42 by HIDDEN MESSAGE
#45 by Ненавижу 1С
ни фига не ясно, почему в эту ветку этот помет сыпется?
#48 by Злобный Фей
Хрен там, модеры аддыхают, а спамботы лютуют
#51 by Gepard
у меня на данный момент все объекты такого вида: class Бренд: Справочник, IМетодыКопирования, IМетодыРедактирования    {        #region Служебные данные        private string _ПолнНаименование = "";                #endregion        #region Конструктор        public Бренд        {            Инициализация;        }        #endregion        #region Инициализация        private void Инициализация        {            this.ТаблицаНаименование = "Бренды";            this.ТребуетсяВладелец = true;            this.ЗаголовокСправочника = "Бренды";        }        #endregion        #region Поле ПолнНаименование        [ПолеБазыДанных(           Наименование = "ПолнНаименование",            Тип = DbType.String,            ТипСтрокой = "nVarChar",            Длина = 400)]        public string ПолнНаименование        {            get            {                return _ПолнНаименование;            }            set            {                if (_ПолнНаименование != value)                    Изменен = true;                _ПолнНаименование = value;            }        }        #endregion        #region IМетодыРедактирования Members        public void Новый        {            Бренд мойОбъект = new Бренд;            мойОбъект.Идентификатор = System.Guid.NewGuid.ToString;            мойОбъект.Владелец = this.Владелец;            Формы.Бренд.Объект мояФорма = new Gepard.Формы.Бренд.Объект(мойОбъект, false);            мояФорма.ShowDialog;            мояФорма.Dispose;        }        public void Изменить        {            Формы.Бренд.Объект мояФорма = new Gepard.Формы.Бренд.Объект(this, false);            мояФорма.ShowDialog;            мояФорма.Dispose;        }        public void Посмотреть        {            Формы.Бренд.Объект мояФорма = new Gepard.Формы.Бренд.Объект(this, true);            мояФорма.ShowDialog;            мояФорма.Dispose;        }        public void Выбрать        {            if (Владелец.Trim != "")            {                Формы.Универсальные.СправочникОбщий мойСправочник = new Формы.Универсальные.СправочникОбщий(this, true);                мойСправочник.ShowDialog;                мойСправочник.Dispose;            }            else            {                System.Windows.Forms.MessageBox.Show("Не выбран владелец!");            }        }        public void Справочник        {            if (Владелец.Trim != "")            {                Формы.Универсальные.СправочникОбщий мойСправочник = new Формы.Универсальные.СправочникОбщий(this, false);                мойСправочник.ShowDialog;                мойСправочник.Dispose;            }            else            {                System.Windows.Forms.MessageBox.Show("Не выбран владелец!");            }        }        #endregion        #region IМетодыКопирования Members        object IМетодыКопирования.СоздатьНовыйЭкземпляр        {            return new Бренд;        }        #endregion    } Плюс - универсальный хранитель И все...
#53 by Злобный Фей
Нихрена непонятно при чем тут объектный скуль. Точнее так: какое отношение твой пост ваще имеет к сабжу
#54 by Gepard
здесь получается, что объектный скуль не нужен
#56 by dbert
И не запаривает переключаться между расскладками (рус/англ)?
#58 by Gepard
нет... там почти все на русском
#69 by France
кто-то, явно, свой хлеб зря кушает.
#70 by Gepard
это ты про модераторов ? ;-)
#71 by France
если пальцем покажу, откусят палец - поэтому не буду конкретизировать))
#72 by Gepard
:)
#75 by pectopatop
бот, изыди!
#76 by NS
Я не могу банить по IP :(
#79 by Gepard
а сообщения поудалять?
#80 by Gepard
хотя уже много поудаляли... :)
#81 by Gepard
можно продолжать :)
#92 by pectopatop
есть Стена Плача. тут - Ветка Срача.
#94 by rassigor
мдя
#95 by NS
Мож пусть ветка будет громоотводом?
#98 by Gepard
точно, надо чтоб модератор просто утопил ветку
#100 by Mikeware
Кто-нибудь объяснит это явление? :-) На что они эрегируют?
#103 by Gepard
просьба утопить ветку
#104 by Gepard
она уже надоела :)))
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С