|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Добрый день, коллеги. Встала задача доступаться до данных в postgreSQL из CLR table valued функций. Для доступа хочется использовать npgsql. В лоб не берется - при попытке установки в базу необходимых сборок SQL Server начинает ругаться, что это и то он в себя не пустит. Посему вопросы: 1) Делал ли кто нибудь так? 2) И если делал, то как? Или может есть другие способы, более правильные? Через связанный сервер не хочется, OPENQUERY не умеет правильно с параметрами работать. Заранее благодарю за содержательные советы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 12:55 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Павел Воронцов, Лучше любое внешнее взаимодействие выносить в отдельное приложение чем интегрировать в процесс сиквела. На внешние сборки он вам ругается потому что их нужно импортировать с permissionset = unsafe. ( в большинстве случаев) + импортировать все их зависимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 13:01 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
felix_ff, Спасибо за ответ. Хочется именно изнутри сервера, а то придется менять всю концепцию. Что импортировать все зависимости понятно. unsafe не помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 13:05 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Павел Воронцов Что импортировать все зависимости понятно. unsafe не помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 13:10 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
alexeyvg, Вот например при попытке импорта ValueTuple ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 13:13 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Покажите Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 13:19 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
msLex, говорит нет такого параметра. Что туда поставить? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 13:31 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Павел Воронцов, Вы с правами sysadmin это выполняете? И версия сервера у вас какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 13:39 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Павел Воронцов msLex, говорит нет такого параметра. Код: sql 1. 2. 3.
ну за одно и Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 13:52 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
msLex, Код: sql 1.
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor) Код: sql 1.
name minimum maximum config_value run_valueclr strict security 0 1 0 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 13:58 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
а Код: sql 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 14:02 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Ну и надо глянуть на зависимости этой сборки, их нужно предварительно загрузить ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 14:07 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Павел Воронцов, а так это System.ValueTuple я чет сразу то и не посмотрел. Это сборка со строгим именем, вы не можете ее импортировать в сиквел не из GAC или ее стандартного расположения Укажите путь импорта не C:\exchange\System.ValueTuple.dll а C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.ValueTuple.dll ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 14:14 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
msLex а Код: sql 1.
? Я, собственно, начал загружать эту сборку поскольку от неё зависит ngpsql ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 14:14 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
felix_ff Павел Воронцов, а так это System.ValueTuple я чет сразу то и не посмотрел. Это сборка со строгим именем, вы не можете ее импортировать в сиквел не из GAC. Укажите путь импорта не C:\exchange\System.ValueTuple.dll а C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.ValueTuple.dll ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2020, 14:16 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Столкнулся с тем, что приходится грузить все зависимые сборки в SQL Server. При этом граф замкнулся - system.web требует system.enterpriseservices, который требует system.runtime.remoting, который требует system.web. Это меня несколько удивило. В интернетах пишут, что если сборку создавать из GAC (или как оно называется?), то сервер сам должен подтягивать и устанавливать всё, но в моём случае это почему то не так. ЧЯДНТ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 12:22 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Павел Воронцов, это еще один камень в огород мышкокликателей. не используйте ГУИ, он конвертирует вызов в create assembly blablabla from <binary_serialied_assembly> вместо этого используйте: Код: sql 1. 2. 3. 4.
тогда автоматом подцепятся сборки зависимостей ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 12:31 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
felix_ff Павел Воронцов, это еще один камень в огород мышкокликателей. не используйте ГУИ, он конвертирует вызов в create assembly blablabla from <binary_serialied_assembly> ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 13:45 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Павел Воронцов вот же сволочи Они не стали делать 2 совершенно разных ветви кода, для запуска SSMS на сервере, и на другой машине, и сделали однообразно from <binary_serialied_assembly> ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 14:00 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
felix_ff, не используйте сборки из GAC ни по каким соусом. При очередном обновлении видны в воскресенье, сборки станут в известную позицию из-за обновлений .NET. Пишите код так, чтобы сторонние сборки, кроме официально перечисленным, не использовались. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 14:06 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Павел Воронцов system.web требует... Сборка System.Web совершенно не нужна для доступа к данным в PostgreSQL. Что-то вы явно делаете не то. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 14:07 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Владислав Колосов felix_ff, не используйте сборки из GAC ни по каким соусом. При очередном обновлении видны в воскресенье, сборки станут в известную позицию из-за обновлений .NET. Пишите код так, чтобы сторонние сборки, кроме официально перечисленным, не использовались. с чего бы это? как раз GAC и придуман для того что бы позволить использовать сборки нескольким приложениям. при этом если меняется версия сборки изменится и public keytoken что в свою очередь повлечет изменение пути сохранения в глобальном кэше (для более новых версий) а для старого который размешался в c:\windows\assembly у сборки просто будет другая версия которая будет жить по соседству с ранее задеплоенной. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 19:49 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
felix_ff, получите ошибку о том, что сохраненная на сервере версия сборки не соответствует версии в GAC и сервер откажется выполнять CLR. Соседства там никак не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 12:28 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
Владислав Колосов felix_ff, получите ошибку о том, что сохраненная на сервере версия сборки не соответствует версии в GAC и сервер откажется выполнять CLR. Соседства там никак не получается. сервер (sql server) хранит сборки в сериализованном виде, а не подгужает их каждый раз с места откуда выполнял загрузку, т.е. даже если вы удалите сборку из GAC или любой другой директории откуда она была загруженна на сервер это никак не повлияет. она уже хранится в базе в сериализованном виде . вы даже можете файл сборки удалить после создания ее на сервере, и сборка будет работать. ну или приведите репро ошибки, я просто ни разу такого не видел ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 04:57 |
|
CLR функция с доступом к Postgres через npgsql - возможно?
|
|||
---|---|---|---|
#18+
felix_ff Владислав Колосов felix_ff, получите ошибку о том, что сохраненная на сервере версия сборки не соответствует версии в GAC и сервер откажется выполнять CLR. Соседства там никак не получается. сервер (sql server) хранит сборки в сериализованном виде, а не подгужает их каждый раз с места откуда выполнял загрузку, т.е. даже если вы удалите сборку из GAC или любой другой директории откуда она была загруженна на сервер это никак не повлияет. она уже хранится в базе в сериализованном виде . вы даже можете файл сборки удалить после создания ее на сервере, и сборка будет работать. Если в сборке, которая в сиквеле, используется та же System.ValueTuple, она подгрузится из, например, C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.ValueTuple.dll А после апдэйта фреймворка папка может изменить имя с v4.0.30319, на, скажем, v4.0.30352? Если может, то да, всё перекорёжит. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 10:36 |
|
|
start [/forum/topic.php?fid=46&msg=39935389&tid=1686365]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 138ms |
0 / 0 |