Эти вопросы предназначены для опытных специалистов и возникают из следующей (упрощенной) ситуации: предположим, что происходит выход из MSSQL Server1, на котором завершается База данных (это em>database1 не нормализована), что затруднит ее использование для различных целей, таких как внешние клиенты (инструменты для визуализации, другие программы и т. д.), и ее нельзя будет изменить (из много причин). Чтобы иметь возможность эффективно использовать других клиентов на другом сервере, необходимо использовать еще один MSSQL Server2, где базы данных оптимизируются, а данные с Сервер1 изменяются и вставляются в Сервер2. >.
В качестве примера из MSSQL ,Server1, databse1, TableA вставьте данные в MSSQL, Server2 , dabase2, TableB и ТаблицаC. это можно сделать через T-SQL (триггеры, процедуры и т.д.).
Но в некоторых ситуациях удобнее разработать DLL и зарегистрировать сборку в MSSQL и запустить триггер UPDATE.
У меня была попытка разработать DLL для регистрации сборки на Server2 который сработает при UPDATE Server2, Table_ActNow.
Я разработал класс с использованием C# и платформы DOTNET 4.8< /em>.
И логика моего класса заключалась в использовании Table Adaptor, который будет загружать данные из Server1 TableA, SQL пример SELECT TOP(1) * FROM TableA
в объект Набор данных с помощью метода Fill(), обработать загруженные данные, заполнить другие 2 объекта Набор данных обработанными данные и используйте эти два объекта для вставки в Server2 TableB и TableC через Table Adaptor каждого объекта с помощью INSERT< /code>.
Проблема в том, что если мой класс запускается MSSQL, координатором распределенных транзакций Microsoft (MSDTC), который управляет транзакциями и соединениями и в этом случае сообщает об ошибках (DTC настроен корректны на обоих серверах и работают правильно).
После нескольких дней отладки я обнаружил, что методы команд SQL Table Adaptor не отображаются, в В результате транзакция завершится неудачно.
Единственное решение, которое может сработать, — это добавить в частичный класс методов Table Adaptor, которые будут дополнительно раскрывать команду SQL. методы (Я это не проверял! )
Согласно документации Microsoft Адаптеры таблиц следует использовать в CRUD приложения.
Также в документации Microsoft относительно транзакций приводятся примеры использования SqlPipe, в этом случае мне приходится управлять открытием и закрытием соединений и проверьте, выполняют ли команды sql задание во время транзакции.
Потому что я наблюдал при использовании Адаптеров таблиц для заполнения Набора данных< /strong> и затем что-то сделать с этими данными, процесс это намного быстрее и эффективнее по сравнению с другим случаем, когда мне приходится управлять соединением, создавать переменные и готовить другие шаги для работы с данными, как в случае, когда я использую SqlPipe.С точки зрения опытного человека я хотел бы знать, каков элегантный и оптимизированный способ сделать это (в .NET)?
Это неправильно использовать дополнительные адаптеры таблиц или это слишком много усилие?
Стоит ли мне использовать SqlPipe ?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ecial-case
Адаптер таблицы против SqlPipe (особый случай) ⇐ C#
Место общения программистов C#
-
Anonymous
1733328148
Anonymous
Эти вопросы предназначены для опытных специалистов и возникают из следующей (упрощенной) ситуации: предположим, что происходит выход из [b]MSSQL Server1[/b], на котором завершается [b]База данных[/b] (это em>[b]database1[/b] не нормализована), что затруднит ее использование для различных целей, таких как внешние клиенты (инструменты для визуализации, другие программы и т. д.), и ее нельзя будет изменить (из много причин). Чтобы иметь возможность эффективно использовать других клиентов на другом сервере, необходимо использовать еще один [b]MSSQL Server2[/b], где базы данных оптимизируются, а данные с [b]Сервер1[/b] изменяются и вставляются в [b]Сервер2[/b]. >.
В качестве примера из [b]MSSQL ,Server1, databse1, TableA[/b] вставьте данные в [b]MSSQL, Server2 , dabase2, TableB и ТаблицаC[/b]. это можно сделать через [b]T-SQL (триггеры, процедуры и т.д.).[/b]
Но в некоторых ситуациях удобнее разработать DLL и зарегистрировать сборку в MSSQL и запустить триггер UPDATE.
У меня была попытка разработать DLL для регистрации сборки на [b]Server2[/b] который сработает при UPDATE [b]Server2, Table_ActNow[/b].
Я разработал класс с использованием [b]C# и платформы DOTNET 4.8[/b]< /em>.
И логика моего класса заключалась в использовании [b]Table Adaptor[/b], который будет загружать данные из [b]Server1 TableA[/b], SQL пример SELECT TOP(1) * FROM TableA
в объект [b]Набор данных[/b] с помощью метода Fill(), обработать загруженные данные, заполнить другие 2 объекта [b]Набор данных[/b] обработанными данные и используйте эти два объекта для вставки в [b]Server2 TableB и TableC[/b] через [b]Table Adaptor[/b] каждого объекта с помощью INSERT< /code>.
Проблема в том, что если мой класс запускается MSSQL, [b]координатором распределенных транзакций Microsoft (MSDTC)[/b], который управляет транзакциями и соединениями и в этом случае сообщает об ошибках (DTC настроен корректны на обоих серверах и работают правильно).
После нескольких дней отладки я обнаружил, что [b]методы команд SQL[/b] [b]Table Adaptor [/b] не отображаются, в В результате транзакция завершится неудачно.
Единственное решение, которое может сработать, — это добавить в частичный класс методов [b]Table Adaptor[/b], которые будут дополнительно раскрывать команду [b]SQL. методы[/b] ([b]Я это не проверял![/b] )
Согласно документации Microsoft [b]Адаптеры таблиц[/b] следует использовать в [b]CRUD[/b] приложения.
Также в документации Microsoft относительно транзакций приводятся примеры использования SqlPipe, в этом случае мне приходится управлять открытием и закрытием соединений и проверьте, выполняют ли команды sql задание во время транзакции.
Потому что я наблюдал при использовании [b]Адаптеров таблиц[/b] для заполнения [b]Набора данных< /strong> и затем что-то сделать с этими данными, процесс это намного быстрее и эффективнее по сравнению с другим случаем, когда мне приходится управлять соединением, создавать переменные и готовить другие шаги для работы с данными, как в случае, когда я использую SqlPipe.С точки зрения опытного человека я хотел бы знать, каков элегантный и оптимизированный способ сделать это (в .NET)?
Это неправильно использовать дополнительные адаптеры таблиц[/b] или это слишком много усилие?
Стоит ли мне использовать SqlPipe ?
Подробнее здесь: [url]https://stackoverflow.com/questions/79251908/table-adapter-vs-sqlpipe-special-case[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия