LINQ в win32 DELPHI

Удалось обойти и добавили AND 1 = 1 и сработало.

ВЫБРАТЬ * ИЗ ТАБЛИЦЫ, ГДЕ ПУНКТ НЕДЕЙСТВИТЕЛЕН И 1 = 1

11
задан Jlouro 3 January 2009 в 23:55
поделиться

2 ответа

Delphi 2009 имеет дженерики, помощников класса и анонимную поддержку метода, но не лямбду, дополнительные методы или вывод типа. Лямбда-выражения, вероятно, существуют будущей версии Delphi, но они еще не находятся на официальном плане действий (новый должен прибывать скоро, надо надеяться). Также Delphi для Win32 не имеет доступа ко всем библиотекам LINQ.

Таким образом, короткий ответ нет, Вы не можете сделать LINQ в Delphi Win32. Вы можете, как когда-либо делают некоторые подобные вещи, и можно технически даже получить доступ к LINQ через COM (как Вы можете с любыми классами.NET), но он был бы вид поражения точка без прохладного синтаксиса LINQ.

LINQ является действительно технологией.NET. В то время как Delphi, скорее всего, разработает функции языка, которые делают LINQ возможный, базовые библиотеки.NET для разработки.NET только.

Я предложил бы использовать Данные RemObject, Абстрактные или подобные.

16
ответ дан 3 December 2019 в 05:59
поделиться

Да и номер LINQ может действительно считаться двумя различными объектами.

Первым является SQL как синтаксис запроса. Это - то, что позволяет Вам писать следующее в C#.

var query = from it in "foobar" select Char.ToUpper(it);

Чтобы Дельфи использовал эту версию LINQ, он должен был бы добавить явную поддержку синтаксиса. AFAIK это не существует.

Под капотом, хотя, все запросы LINQ переводятся в ряд выражений запроса. Они обычно включают интенсивное использование лямбда-выражений и закрытия. Вышеупомянутый код эквивалентен следующей версии несинтаксиса SQL.

var query = "foobar".Select(x => Char.ToUpper(x));

Я не знаю уровня лямбды или делегирую поддержку в Delphi, но это должно быть возможно к доступу LINQ в этом методе от Delphi.

3
ответ дан 3 December 2019 в 05:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: