Да, немного. А ты про embedded SQL ? :)

Да, слышал лет 10 назад этим ещё пользовались :-)

    Насколько я понимаю, LINQ - это постановка задачи наоборот - берём программу
на 'нормальном' языке (C#, C++ etc) и позволяем работать с данными, но без 
датасетов,
а с конструкциями этого языка. Не нравится... MS хочет взять под свои крылья 
всех
чайников и дать им возможность назвать себя программистами. Иными словами -
опустить порог входа в профессию до нуля. Я не хочу иметь такую профессию. И я,
по этой причине, давно не переношу VB\Access и т.п.

Ну что-то типа того, только вот я так и не понял почему это плохо... Они же со временем смогут в датасеты те же индексы прикрутить и прочую лабуду, сделать движок БД иными словами.

    Это не интеграция. Это профанация. Всё спрятано. Шаг влево, шаг вправо - 
расстрел.
Или ничего не работает. Всё в стиле МС - они лучше знают, что тебе нужно.

Ну этого я не знаю. Думаю не так всё там уж и плохо. Во всяком случае с виду оно 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.

4) Тему можно развивать например событиями. Триггеры - такая хрень, которая вызывается всегда. А мне очень часто такое не нужно. Но это меня уже понесло. Так от существующего сервера камня на камне не останется :-)))

Ответить