Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передать в функцию массив типов (на C#)
|
|||
|---|---|---|---|
|
#18+
Есть функция в БД FUNCTION "Customers"."CustomerBalance_Upd"(_data "Customers"."CustomerBalance"[]) вызывается, например, так: "Customers"."CustomerBalance_Upd"(ARRAY[ [row (15,25,11,3,33)::"Customers"."CustomerBalance"] ,[row (16,26,11,555,33)::"Customers"."CustomerBalance"] ,[row (17,31,11,3,33)::"Customers"."CustomerBalance"]]); Как мне сделать такой запрос на C#? NpgsqlCommand command = new NpgsqlCommand(); command.Connection = _connection; command.CommandType = System.Data.CommandType.StoredProcedure; command.CommandText = @"""Customers"".""CustomerBalance_Upd"""; var par = command.Parameters.Add("_data", NpgsqlTypes.NpgsqlDbType. ????????? ???????????? Массив сишных структур(классов) не катит. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 12:08 |
|
||
|
Передать в функцию массив типов (на C#)
|
|||
|---|---|---|---|
|
#18+
Типа такого, я передаю массив гуидов: Guid?[] parGuids = new Guid?[16]; parGuids[0] = Guid.NewGuid(); // etc. NpgsqlParameter paramIds = new NpgsqlParameter(@"par_ids", NpgsqlDbType.Array | NpgsqlDbType.Uuid); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 12:29 |
|
||
|
Передать в функцию массив типов (на C#)
|
|||
|---|---|---|---|
|
#18+
С этим проблем бы не было. Тока вместо гуидов (предопределенных типов) надо тип, определенный пользователем: CREATE TYPE "Customers"."CustomerBalance_Type" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 12:36 |
|
||
|
Передать в функцию массив типов (на C#)
|
|||
|---|---|---|---|
|
#18+
Пардон, старая версия. Тип, в общем, определенный пользователем, тока неявно созданный на основе таблицы "Customers"."CustomerBalance" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 12:38 |
|
||
|
Передать в функцию массив типов (на C#)
|
|||
|---|---|---|---|
|
#18+
ПетровичъПардон, старая версия. Тип, в общем, определенный пользователем, тока неявно созданный на основе таблицы "Customers"."CustomerBalance" Я меня так: 1. тип создан явно в базе: my_type 2. повторён в коде(! - см. имена): Код: c# 1. 2. 3. 4. 3. в коде мепнут на коннекции Код: c# 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 13:15 |
|
||
|
Передать в функцию массив типов (на C#)
|
|||
|---|---|---|---|
|
#18+
Ролг Хупин, да, получилось. Несколько дополнений. 1. При создании типа в приложении, необходимо точно повторять названия полей из БД, соблюдая регистр: using NpgsqlTypes; ........... public class CustomerBalanceType { [PgName("balance")] public decimal balance { get; set; } 2. Привязку делать одни раз в конструкторе: NpgsqlConnection.MapCompositeGlobally<CustomerBalanceType>(); 3. Параметр задавать через AddWithValue: public void SaveBalanceData(CustomerBalanceType[] balanceData) {... command.Parameters.AddWithValue("_data", balanceData); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2016, 07:48 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39315996&tid=1996984]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
181ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 285ms |

| 0 / 0 |
