XPODataSource: выберите из TableValuedFunctions
Можно ли выбрать функцию с табличным значением, используя xpoDataSource вместо выбора из таблицы.
примечание: я использую xpoDatasource с serverMode = true
1 ответ
Решение
Источник - табличная функция в XPO (и XAF)?
Вы можете выполнить эту задачу с помощью прямых запросов SQL. Вот пример:
IDataLayer dal = XpoDefault.GetDataLayer(MSSqlConnectionProvider.GetConnectionString("(local)", "TestDatabase"), AutoCreateOption.None);
Session session = new Session(dal);
SelectedData data = session.ExecuteQueryWithMetadata("SELECT * FROM TrackingItemsModified(2)");
XPDataView view = new XPDataView();
foreach (var row in data.ResultSet[0].Rows) {
view.AddProperty((string)row.Values[0], DBColumn.GetType((DBColumnType)Enum.Parse(typeof(DBColumnType), (string)row.Values[2])));
}
view.LoadData(new SelectedData(data.ResultSet[1]));
GridControl control = new GridControl();
control.DataSource = view;
control.Dock = DockStyle.Fill;
Form form = new Form();
form.Controls.Add(control);
form.ShowDialog();
Ссылка эти:
Как заполнить XPServerCollectionSource/InstantFeedbackCollectionSource результатом выполнения оператора SQL, разработанного во время выполнения?
Как передать табличный параметр в метод Session.ExecuteSProc