|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
ВМоисеев<Если принять Ваше предложение, то вызывающий будет зависим от типа базы данных (провайдера). Что, на мой взгляд, не есть хорошо. С точностью до наоборот. Такой вызов поддерживают все базы. Ну, по крайней мере те, с которыми я работал: MS SQL, IBM DB2, Oracle, MySQL ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 13:23 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
>Cat2, сегодня, 13:23 >С точностью до наоборот. Такой вызов поддерживают все базы. Ну, по крайней мере те, с которыми я работал: MS SQL, IBM DB2, Oracle, MySQL <Интересно, Вы меня заинтриговали. Работаю только с MS SQL и Oracle. Имею для обертки: - MS SL . . . using System.Data.SqlClient; Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
- Oracle . . . using Devart.Data.Oracle; . . . Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
SqlCommand command и OracleCommand command - это сугубо разные вещи. Независимость вызывающего кода от типа базы данных (ну почти) достигается промежуточным хранением: Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 14:39 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
ВМоисеевSqlCommand command и OracleCommand command - это сугубо разные вещи И обе они наследуются от одного и того же базового класса System.Data.Common.DbCommand из стандартной библиотеки фреймворка - им воспользоватсья не судьба? Зачем эта возня с обёрткой в object[]? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 18:44 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
>Сон Веры Павловны, сегодня, 18:44 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1315008&msg=21952785][21952785] >И обе они наследуются от одного и того же базового класса… <Ну и? Сейчас в вызывающем классе так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Как Вы видите, здесь нет ссылки на провайдер базы данных. Вся специфика работы с базой находится в обертке. Покажите Ваш код без возни с обёрткой в object[]. Буду признателен. Уточняю - обертка, это класс работы с базой данных ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2019, 20:17 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
ВМоисеевКак Вы видите, здесь нет ссылки на провайдер базы данных. Вся специфика работы с базой находится в обертке. Покажите Ваш код без возни с обёрткой в object[]. Буду признателен. Уточняю - обертка, это класс работы с базой данных Вы в самом деле не знаете, как работать с базовыми классами и интерфейсами? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
App.Infrastructure - это отдельная сборка, в клиентском коде нет никаких специфических для провайдера импортов типов. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 07:41 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
>Сон Веры Павловны, сегодня, 07:41 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1315008&msg=21953038][21953038] >Вы в самом деле не знаете, как работать с базовыми классами и интерфейсами?... <Пока посмотрел код по диагонали. Мало что понял. Сразу есть уточнение - разговор идет о вызове ХП с параметрами. Далее, не вижу особенностей использования провайдеров MS SQL и Oracle. Пример: - MS SQL Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
- Oracle Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 10:53 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
ВМоисеевПока посмотрел код по диагонали. Мало что понял. Учите матчасть. ВМоисеевДалее, не вижу особенностей использования провайдеров MS SQL и Oracle. Вы хотите, чтобы я в тестовом наколеночном примере вывалил описание нюансов на все случаи жизни? Всё это вполне можно сделать внутри обёрток, если функциональость поддерживают обе базы. Расписывать такую рутинную очевидность смысла не вижу. А вот такое Код: c# 1.
где Код: c# 1.
по моему скромному, лютый трэш. Какую-никакую типизированную обертку в виде спец. класса сделать не судьба? Чтобы задавать имя параметра, тип параметра? Если уж пока не получается понять, как использвать тот же System.Data.Common.DbParameter. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 11:55 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
>Сон Веры Павловны, сегодня, 11:55 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1315008&msg=21953247][21953247] >Учите матчасть. <Спасибо за совет. Учу потихоньку. >...А вот такое … где … по моему скромному, лютый трэш. <Странно это скромненький Вы наш - psp[i][0] содержит текстовое имя параметра при вызове ХП. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 14:34 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
ВМоисеевpsp[i][0] содержит текстовое имя параметра при вызове ХП. И это текстовое имя не контролируется никак. Если кто-то, кто работет с той же кодовой базой, вместо строки поместит туда что угодно другое - это выяснится только на рантайме. А тот же DbParameter просто не позволит этого сделать, поскольку попытка засунуть в ParameterName что-то, что не является строкой, рванёт на этапе компиляции. Аналогично и с прочими передаваемыми свойствами. Типизация того же размера параметра избавляет от накладных расходов при боксинге-анбоксинге, неизбежных при передаче значимых типов через заворачивание в object. Итд итп. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 18:03 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
Я за Сон Веры Павловны Не надо умножать сущности ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 19:50 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
>Cat2, сегодня, 19:50 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1315008&msg=21953773][21953773] >… Не надо умножать сущности < А если так (класс обертка): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2019, 23:23 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
ВМоисеев Код: c# 1. 2. 3. 4. 5.
Я это даже не буду комментировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 06:45 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
>Сон Веры Павловны, сегодня, 06:45 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1315008&msg=21953919][21953919] >Я это даже не буду комментировать. <Жаль. Была возможность напомнить, что надо использовать свойства - чистота кода!. Код: c# 1. 2. 3. 4. 5. 6.
Спасибо за обсуждение, помогает шлифовке базовых элементов ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 10:51 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
ВМоисеев<Жаль. Была возможность напомнить, что надо использовать свойства - чистота кода!.прежде всего тут за статик надо руки отрывать, свойства не помогут чистоте этого кода )) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 11:19 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
>Shocker.Pro, сегодня, 11:19 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1315008&msg=21954137][21954137] >прежде всего тут за статик надо руки отрывать, свойства не помогут чистоте этого кода )) <Вообще то тут принято аргументировать, здесь не литературный кружок ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 12:44 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
В данном случае наоборот - от тебя нужна аргументация для использования статика, потому что ни в каком вменяемом источнике ты не найдешь рекомендаций по подобному построению приложения. Ну или примерно так: ВМоисеевА если так (класс обертка):Обертка по сути своей никак не может быть статической. У тебя есть 100 конфет и один фантик. Ну обертывай. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 14:44 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
Shocker.ProВ данном случае наоборот - от тебя нужна аргументация для использования статика, потому что ни в каком вменяемом источнике ты не найдешь рекомендаций по подобному построению приложения. Ну или примерно так: ВМоисеевА если так (класс обертка):Обертка по сути своей никак не может быть статической. У тебя есть 100 конфет и один фантик. Ну обертывай. чисто для срача, а какие аргументы кроме "конфет"? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 21:37 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
love_bachShocker.ProВ данном случае наоборот - от тебя нужна аргументация для использования статика, потому что ни в каком вменяемом источнике ты не найдешь рекомендаций по подобному построению приложения. Ну или примерно так: пропущено... Обертка по сути своей никак не может быть статической. У тебя есть 100 конфет и один фантик. Ну обертывай. чисто для срача, а какие аргументы кроме "конфет"? зайдем напрмер так. Dapper - фактически хелпер. все статическое ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 21:49 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
love_bachчисто для срачаЕсли разрабатываешь в стиле монолит-форевер-сингл-разраб - делай что хочешь. Вон Сон комментировать отказался, и у меня большого желания нет. Этот класс не заменяемый, не тестируемый, не потокобезопасный, к нему не прикрутишь интерфейсы, не засунешь в DI-контейнер, не унаследуешь.love_bachзайдем напрмер так. Dapper - фактически хелпер. все статическоеИ что, все его классы хелперов имеют состояние? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 23:59 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
love_bachчисто для срача, а какие аргументы кроме "конфет"? https://docs.automapper.org/en/stable/9.0-Upgrade-Guide.html 9.0 Upgrade Guide The static API was removed Switch to the instance based API, preferably using dependency injection. See here and here. Вот и спроси их "чисто для срача" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:24 |
|
Вызов хранимой процедуры из Си Шарп
|
|||
---|---|---|---|
#18+
>Shocker.Pro, сегодня, 13:24 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1315008&msg=21955396][21955396] >Вот и спроси их "чисто для срача" <А если посмотреть здесь . Думаю так - не можешь, не применяй. И потом, разве можно применить один connect для работы с ним из нескольких потоков. Думаю, что не стоит удерживать долго connect в открытом состоянии. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 21:02 |
|
|
start [/forum/topic.php?fid=20&msg=39851460&tid=1398835]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 259ms |
total: | 419ms |
0 / 0 |