Я хотел бы подойти к этому с помощью коррелированного подзапроса:
select t.*,
(select count(*)
from t t2
where t2.start_time <= t.start_time and
t2.end_time >= t.end_time
) as num_concurrent_calls
from t;
Я не использовал его, но проверяю RemObject Гидра.
Гидра помогает собственный Delphi смешивания и подгонки и управляла кодом.NET в отдельном приложении, позволяя разработчикам выбрать лучший набор технологий для их потребностей.
В основном можно встроить Визуальный и невидимый код.NET в приложении Delphi и работать с ним точно так же, как это - собственный компонент Delphi. У них есть бесплатная демонстрационная версия, и существует конкурс, работающий прямо сейчас, где можно выиграть бесплатный экземпляр путем рассмотрения бесплатной демонстрационной версии.
Кроме того затем можно использовать.NET через COM в Delphi. Блок.NET может быть в C#, Призме, VB.NET или любом языке.NET.
Существует несколько опций:
Возможно создать и выставить класс.NET в блоке как управление COM (interop) так, чтобы это было применимо в Delphi.
Delphi был .NET некоторое время (но это не был самый яркий час Delphi), таким образом, с Delphi 2006, например, можно использовать Delphi в качестве языка .NET. Однако точно так же, как, если не больше, какое-либо другое изменение версии Delphi, существуют несовместимости с более старым исходным кодом.
РЕДАКТИРОВАНИЕ, Чтобы сделать первый метод, Вы захотите создать свой блок с классами/функциональностью, в которых Вы нуждаетесь на языке.NET и компилируете его. Необходимо закончить с DLL.
В Delphi, в соответствии с меню Component, избранный Компонент Импорта (это должно быть ниже Пакетов Установки). Вы получите мастер, который должен иметь 3 радио-опции
Выберите третье, и Вы будете видеть список глобально зарегистрированных блоков. Так как Вашим блоком является просто анонимный DLL, нажмите Add около нижней части, и в открытом диалоговом окне выбирают DLL.
На следующей странице Вы будете запрошенной информацией палитры. Здесь у Вас есть выбор - указывают, что Ваша папка проектов и отпуск "Генерируют Обертки Компонента", неконтролируемые для добавления блока к проекту только. Другой выбор состоит в том, чтобы поместить его в lib или другую глобальную папку и проверить опцию обертки, которая добавит его к палитре инструментов для всех проектов.
Последний экран спросит, хотите ли Вы добавить, это к Вашему текущему проекту (зависит от если Вы где, добавляя его глобально или только к одному проекту).
Когда все сделано, необходимо смочь создать экземпляры класса .NET в Delphi с чем-то вроде этого:
var MyCSharpClassInstance: TMyCSharpClassProvider;
begin
MyCSharpClassInstance:=CoTMyCSharpClassProvider.Create;
…
MyCSharpClassInstance.Free;
End
Я полагаю, что Delphi, с несколько версий назад, имеет компиляцию.NET.
http://www.codegear.com/products/bds2006
"Developer Studio 2006 включает полную поддержку RAD C и C# в дополнение к Delphi Win32 и Delphi для языков программирования.NET".
Можно скомпилировать код Delphi для.NET с помощью последней Призмы Delphi (т.е. 2009). Возможно сделать блок.NET из файлов Delphi, и их расширяют тот классы, использующие регулярно C#.
Если Ваши классы изолируются, можно также использовать дополнительные методы.
Вы могли взглянуть здесь, они производят компилятор для Delphi. Сеть. Это могло возможно быть путем вперед.