"sasha" ...
>
> > Да, немного. А ты про embedded SQL ? :)
>
> Да, слышал лет 10 назад этим ещё пользовались :-)
Ты будешь удивлён, но этим пользуются и сейчас. Особенно это должны любить
в DB2,
как основное ср-во разработки :)
> > Насколько я понимаю, LINQ - это постановка задачи наоборот - берём
> > программу
> > на 'нормальном' языке (C#, C++ etc) и позволяем работать с данными, но без
> > датасетов,
> > а с конструкциями этого языка. Не нравится... MS хочет взять под свои
> > крылья всех
> > чайников и дать им возможность назвать себя программистами. Иными словами -
> > опустить порог входа в профессию до нуля. Я не хочу иметь такую профессию.
> > И я,
> > по этой причине, давно не переношу VB\Access и т.п.
>
> Ну что-то типа того, только вот я так и не понял почему это плохо... Они
> же со временем смогут в датасеты те же индексы прикрутить и прочую
> лабуду, сделать движок БД иными словами.
Это называется TClientDataset (c) 1997
> > Это не интеграция. Это профанация. Всё спрятано. Шаг влево, шаг вправо
> > - расстрел.
> > Или ничего не работает. Всё в стиле МС - они лучше знают, что тебе нужно.
>
> Ну этого я не знаю. Думаю не так всё там уж и плохо. Во всяком случае с
> виду оно SQL напоминает.
Именно что напоминает. Оно предназначено для 'кухарок', с отсутвующими
мозгами и
неспособных, да и не желающих учиться чему либо, а не для программистов
> > Есть такой тип данных, как record. Дальше объяснять ? :)
>
> О, так это ж и есть интерфейс урезанный :-)
Не надо путать понятия. Я так скажу что это всё наборы байт :)
> >> Как имя таблицы в процедуру передешь без интерфейсов?
> >
> > А вот этого не надо.
> >
> >> А наследование таблиц мне лично кажется тоже ненужным, а вот реализация
> >> интерфейсов очень полезной могла бы быть.
> >
> > Интерфейсы хороши в других местах. Пока не понятно зачем в БД методы,
> > интерфейсы точно также не понятны.
>
>
> Ну ты пользуешься шаблоными в C++? Думаю пользуешься ;-) Я просто C++ не
> люблю и не помню как там уже сделано. В С# есть такое понятие как
> уточнение параметра, т.е. я объявляю параметрический метод и потом ниже
> уточнаю что тип этого параметра должен реализовывать такие-то интерфейс
> (в нашем случае пусть это будет тип record). Ну и все дела. Потом я в
> при выхове процедуры в качестве параметра могу указать любую таблицу,
> которая совместима с этим типом record.
Шаблоны в С++ нужны для совершения аналогичных действий над разными _типами_
Они всегда расширяются компилятором в статический код. В СУБД стоимость
компиляции
несколько другая и типы (таблицы по твоему) не зафиксированны в момент
компиляции.
То, что ты сейчас написал, легко решается передачей курсора в
процедуру-алгоритм
> Зачем нужны методы и интерфейсы? Ну тут придумать можно массу случаев.
Не нужно придумывать :) Нужно искать реальные потребности
> 1) Логическая группировка методов (возможно это схемы делают - я не в
> курсе). Например есть у вас процедуры для расчёта статистики. Было бы
> удобно обэединить их как статические методы объекта Statistics и
> вызывать их как-то так:
> EXECUTE PROCEDURE Statistics.GetMonthStatistics(...)
> EXECUTE PROCEDURE Statistics.GetWeekStatistics(...)
Это пакеты в Оракле (очень похожи, кстати, на паскалевские юниты)
> 2) Многие процедуры в базе по своей сути являются приватными и
> предназначены лишь для вызова из других процедур. ООП эту проблему
> решает очень просто: private/public и все дела.
Это пакеты в Оракле
> 3) Если запись можно представить в виде интерфейса, то для этой записи
> можно и метод вызвать. У меня в базах пруд пруди процедур, которые
> предназначены для вызова с входными параметрами из записи одной и той же
> таблицы, например:
>
> DECLARE MyNews INews;
>
> FOR SELECT * FROM News INTO :News DO
> BEGIN
> MyNews.Refresh();
>
> IF (MyNews.PublishDate < 'YESTERDAY') THEN
> MyNews.Delete();
> END
>
> а внутрях Refresh и Delete будут доступны значения всех полей записи
> типа INews.
Это синтаксический сахар. Record.method <==> method(record)
> 4) Тему можно развивать например событиями. Триггеры - такая хрень,
> которая вызывается всегда. А мне очень часто такое не нужно. Но это меня
> уже понесло. Так от существующего сервера камня на камне не останется :-)))
Всё уже придумано до нас. Нам нужно вспомнить что-нить хорошо забытое :)))
--
Хорсун Влад