powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача в функцию Posgresql сложного типа данных из C#
4 сообщений из 4, страница 1 из 1
Передача в функцию Posgresql сложного типа данных из C#
    #35621699
NewLine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.

Возможно ли в функцию Postgresql передавать сложный тип данных из приложения на C#.
На сервере у меня лежит таблица в которой 25 колонок.
Могу ли я программно передать в функцию которая будет заполнять эту таблицу тип данных, такой же структуры что и таблица, чтоб не прописывать все эти поля вручную.

типа CREATE OR REPLACE FUNCTION setclients(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?.....)

а передать тип данных таблицу CREATE OR REPLACE FUNCTION setclients(clients)
а потом уже сделать INSERT INTO Clients VALUES ($1.id,$1.Address и т.д.)

Как это можно сделать?
Спасибо.
...
Рейтинг: 0 / 0
Передача в функцию Posgresql сложного типа данных из C#
    #35623898
Фотография Степан H.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можете передать строку, и потом парсить, например

Код: plaintext
1.
split_part('abc~@~def~@~ghi', '~@~',  2 ) 
= def
...
Рейтинг: 0 / 0
Передача в функцию Posgresql сложного типа данных из C#
    #35624875
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать функцию, аргумент которой имеет тип composite, можно, как написано в доке :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TYPE inventory_item AS (
    name            text,
    supplier_id     integer,
    price           numeric
);

CREATE TABLE on_hand (
    item      inventory_item,
    count     integer
);

INSERT INTO on_hand VALUES (ROW('fuzzy dice',  42 ,  1 . 99 ),  1000 );

CREATE FUNCTION price_extension(inventory_item, integer) RETURNS numeric
AS 'SELECT $1.price * $2' LANGUAGE SQL;

SELECT price_extension(item,  10 ) FROM on_hand;

но вот есть ли удобный интерфейс для работы с такой функцией из C#?

например в перле нельзя нативно передать ассоциативный массив, так НЕ работает:

Код: plaintext
1.
2.
3.
4.
5.
$dbh->selectall_arrayref(
        'SELECT price_extension( ?, ? ) FROM on_hand',
        undef,
        { 'name' => 'fuzzy dice', 'supplier_id' =>  42 , 'price' =>  1 . 99  },
         10 
);
...
Рейтинг: 0 / 0
Передача в функцию Posgresql сложного типа данных из C#
    #35624885
Денис Ильин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может быть нам поможет XML?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача в функцию Posgresql сложного типа данных из C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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