powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ищу ORM для MSSQL поддержка ХП важна
25 сообщений из 129, страница 4 из 6
Ищу ORM для MSSQL поддержка ХП важна
    #39762205
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

да ладно тебе, на фоне этого:
Код: c#
1.
2.
3.
4.
    public static int nRow;
    static SqlDataReader reader;
    public static string wspErr;
    public static bool bMax;


самое то :)
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762208
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А параметры в виде массива массивов object так прекрасны по сравнению с выражением.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762291
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ВМоисеев,
Вам всем, таким вот пейсателям пенсионерам, не хватает мужества написать одну фразу:
"Я весь функционал ОРМ реализовал самостоятельно".
Но выжевархитектуреничегонепонимаете.
Удачи!

П. , ваши высказывания выглядят слишком категоричными, не находите?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762305
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256k,
А вам какое дело? Вы не программист, не архитектор, а праздно шатающийся без дела.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762339
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 08:00 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21789958][21789958]
>А параметры в виде массива массивов object так прекрасны по сравнению с выражением.
<Видите ли, хочется сделать смысловую часть приложения более или менее независимой от провайдера и базы данных (некая инвариантность). Для Oracle обработка параметров запроса ХП выполняется так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
     //-- Выполнение хранимой процедуры
    public static void Entity_SP(string spname, dlg_sp sp, object[][] psp, dlg_RowToEntity RowToEntity) {
      reader = null; wspErr = null; bMax = false;
      int n = (psp==null)? 0: psp.Length;
      OracleParameter[] asp = new OracleParameter[n+1];
      asp[0]= new OracleParameter("cur_viborka", OracleDbType.Cursor, ParameterDirection.Output);
      try {
        for (int i=0;i<n;i++) {
          switch (psp[i].Length) {
            case 2: asp[i+1] = new OracleParameter((string)psp[i][0], psp[i][1]); break;
            case 3: asp[i+1] = new OracleParameter((string)psp[i][0], OracleDbType.Raw, (int)psp[i][1], psp[i][2], ParameterDirection.Input); break;
          }
        }
     . . .




Обработка для MSSQL приведена выше.
Если у Вас есть более изящный вариант решения вопроса инвариантности - код в студию.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762346
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевкод в студию.любая ОРМ или MDAC без ОРМ на датасетах.
Сравнивайте сами, если сможете.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762390
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 13:42 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790220][21790220]
>...Сравнивайте сами, если сможете.
<Какие интересные люди - одному не понравился мой вариант структуры для промежуточного хранения параметров, другой отсылаем на разгребание кучи - может найдет или отвяжется. Так можешь дать свой вариант структуры?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762394
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>skyANA, сегодня, 08:00 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21789958][21789958]
>А параметры в виде массива массивов object так прекрасны по сравнению с выражением.
<Видите ли, хочется сделать смысловую часть приложения более или менее независимой от провайдера и базы данных (некая инвариантность). Для Oracle обработка параметров запроса ХП выполняется так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
     //-- Выполнение хранимой процедуры
    public static void Entity_SP(string spname, dlg_sp sp, object[][] psp, dlg_RowToEntity RowToEntity) {
      reader = null; wspErr = null; bMax = false;
      int n = (psp==null)? 0: psp.Length;
      OracleParameter[] asp = new OracleParameter[n+1];
      asp[0]= new OracleParameter("cur_viborka", OracleDbType.Cursor, ParameterDirection.Output);
      try {
        for (int i=0;i<n;i++) {
          switch (psp[i].Length) {
            case 2: asp[i+1] = new OracleParameter((string)psp[i][0], psp[i][1]); break;
            case 3: asp[i+1] = new OracleParameter((string)psp[i][0], OracleDbType.Raw, (int)psp[i][1], psp[i][2], ParameterDirection.Input); break;
          }
        }
     . . .





Обработка для MSSQL приведена выше.
Если у Вас есть более изящный вариант решения вопроса инвариантности - код в студию.
Object-relational mapping.

Просто отображение должно быть в обе стороны, то есть фильтры задаваться в терминах Entity, а не параметров хранимой процедуры :)
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762397
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевТак можешь дать свой вариант структуры?
Я вот почему-то помню, что Вы давали. А Вы нет.

Цитирую ( 20604487 ):
skyANAВМоисеевПокажите Ваш код.
Я бы написал что-то такое:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
using Context = ApplicationQueryContext;

public class ApplicationQuery : SqlQuery<Context, Application>
{
    protected override IDbCommand CreateCommand(Context context)
    {
        var command = new SqlCommand("sp_application_select") { CommandType = CommandType.StoredProcedure };

        command.Parameters.AddWithValue("guid", context.Guid);
        command.Parameters.AddWithValue("name", context.Name);

        return command;
    }

    protected override Application ToResult(IDataRecord record)
    {
        return new Application { ... };
    }
}




Теперь покажем выборку в DataGrid-е:

Код: c#
1.
gridApplications.ItemsSource = query.Ask(queryContext).AsObservable();
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762407
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Дак ты сам скачешь по темам как заяц).
Тема разве про структуру?
Тебе сказали ОРМ, ты в ответ простыню кода "смотри как я умею". Причем не автору, а в пустоту. Сам с собою.
...
Независимость кода от провайдеров и бд КАКИХ КОНКРЕТНО?
Должен показывать почему то я)))) LOL.
Правда ты не учился что в ОРМ независимость от оракле и постгри в этом?
<add name=MyConnection connectionString=ddddxxx, providerName =ssssss
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762410
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевОбработка для MSSQL приведена выше.а с кодом хранимки из оракле в сиквел что делаешь?
С типами данных? С тем что сиквел блокировочник?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762414
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевОбработка для MSSQL приведена выше.
Если у Вас есть более изящный вариант решения вопроса инвариантности - код в студию.

Для абстракции от конкретной СУБД, применяют ORM.
Например, Entity Framework, из коробки умеет.

Ваш подход ущербный чуть менее, чем полностью.
Не воспринимайте на личный счёт, речь идёт от вашем коде.
Так плохо, что даже не подходит для примеров, как не надо делать, -- это должно быть очевидно.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762478
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 14:49 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790302][21790302]
>Цитирую:
<Хорошо, допустим. Но меня настораживают 2 нюанса:
1. В примере, что приводил выше приложение работает с 7 таблицами и 28 ХП. Код wsp.cs один для всех, вид обращения к ХП также одинаков. Меняются только параметры.
SELECT
xrow = null; lst_Entity = null; lst_Entity = new List<row_Entity>();
object[][] psp = new object[2][];
psp[0] = new object[2] { "@pk_Entity", pk_Guid };
psp[1] = new object[2] { "@str_Группа", xstr };
при.tmrStart(); await Task.Run(() => wsp.Entity_SP("au_Группы_Sel", wsp.sp_Sel, psp, RowToEntity)); при.tmrStop();
INSERT
object[][] psp = new object[1][];
psp[0] = new object[2] { "@pk_Entity", Guid.NewGuid() };
fun_InsUpd("Ins", psp);
UPDATE
object[][] psp = new object[3][];
psp[0] = new object[2] { "@pk_Entity", xrow.pk_Entity };
psp[1] = new object[2] { "@str_Группа", xrow.str_Группа };
psp[2] = new object[2] { "@ts_Entity", xrow.ts_Entity };
fun_InsUpd("Upd", psp);
}
private async void fun_InsUpd(string spWsp, object[][] psp) { //-- см. wsp.cs
bl_Разрешение = false;

xrow = null; lst_Entity = null;
dlg_sp sp = (spWsp != "Upd") ? (dlg_sp)wsp.sp_Ins : (dlg_sp)wsp.sp_Upd;
string ИмяХП = "au_Группы_" + spWsp;
при.tmrStart(); await Task.Run(() => wsp.Entity_SP(ИмяХП, sp, psp, RowToEntity)); при.tmrStop();
DELETE
object[][] psp = new object[2][];
psp[0] = new object[2] { "@pk_Entity", xrow.pk_Entity };
psp[1] = new object[2] { "@ts_Entity", xrow.ts_Entity };
xrow = null; lst_Entity = null;
при.tmrStart(); await Task.Run(() => wsp.Entity_SP("au_Группы_Del", wsp.sp_Del, psp, RowToEntity)); при.tmrStop();

А как будет у Вашем варианте, 28 классов?


2. Вот это я понимаю. Но откуда у программы телепатические возможности, где определены структура записи выборки и типы её полей?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762488
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевКод wsp.cs один для всех,осталось убить всех и привести код из него.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762489
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 15:12 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790327][21790327]
>а с кодом хранимки из оракле в сиквел что делаешь?
<Не горячись. В Oracle свои хранимки в сиквеле - свои. Структура выборки одинакова (если возможно).
>С типами данных?
<См. IDataRecord
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762494
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 15:21 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790337][21790337]
>Для абстракции от конкретной СУБД, применяют ORM.
<Не нужен мне бульдозер с крыльями и меня не интересует его возможности летака.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762502
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Petro123, сегодня, 15:12 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790327][21790327]
>а с кодом хранимки из оракле в сиквел что делаешь?
<Не горячись. В Oracle свои хранимки в сиквеле - свои. Структура выборки одинакова (если возможно).
>С типами данных?
<См. IDataRecordну вот. А пугал то какими словами...
По факту сделал обертку хранимок и ни с чем не сравнивал.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762504
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>hVostt, сегодня, 15:21 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790337][21790337]
>Для абстракции от конкретной СУБД, применяют ORM.
<Не нужен мне бульдозер с крыльями и меня не интересует его возможности летака.
Сказал инженер используя счеты с костяшками.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762530
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 14:45 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790298][21790298]
>...Просто отображение должно быть в обе стороны…
<Почему? Для меня сущность не кирпич, - а соты, со своей структурой и своими полями. Мне нужно, чтобы обратные отображения отражали нужные поля сущности на параметры ХП, которая и делает нужное. Мне ближе функциональный подход - задал параметры, обратился к функции и работай с данными.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762576
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>skyANA, сегодня, 14:45 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790298][21790298]
>...Просто отображение должно быть в обе стороны…
<Почему? Для меня сущность не кирпич, - а соты, со своей структурой и своими полями. Мне нужно, чтобы обратные отображения отражали нужные поля сущности на параметры ХП, которая и делает нужное. Мне ближе функциональный подход - задал параметры, обратился к функции и работай с данными.
Что такое функциональный подход в вашем понимании?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762580
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевА как будет у Вашем варианте, 28 классов?
В моём варианте чего?

В моём варианте будет 10 запросов одновременно выполняться.
Что скажет на это Ваш wsp? :)
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762586
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 01:09 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790706][21790706]
>...Что скажет на это Ваш wsp? :)
<В моём текущем варианте в конкретный момент времени приложение выполняет только одну ХП. Нужно большее - перенеси wsp.cs из clsApp нужные UserControl.
Моё понимание функции стандартно - y=f(x).
И всё таки сколько классов public class ApplicationQuery : SqlQuery<Context, Application> потребуется для работы с 28 ХП?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762587
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>skyANA, сегодня, 01:09 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1307687&msg=21790706][21790706]
>...Что скажет на это Ваш wsp? :)
<В моём текущем варианте в конкретный момент времени приложение выполняет только одну ХП. Нужно большее - перенеси wsp.cs из clsApp нужные UserControl.
А это ничего не даст.
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762588
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевМоё понимание функции стандартно - y=f(x).
И где же это у Вас в wsp?
...
Рейтинг: 0 / 0
Ищу ORM для MSSQL поддержка ХП важна
    #39762589
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевИ всё таки сколько классов public class ApplicationQuery : SqlQuery<Context, Application> потребуется для работы с 28 ХП?
Зачем мне 28 ХП?
...
Рейтинг: 0 / 0
25 сообщений из 129, страница 4 из 6
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ищу ORM для MSSQL поддержка ХП важна
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]