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

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

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

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

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

Код: plaintext
1.
split_part('abc~@~def~@~ghi', '~@~',  2 ) 
= def
...
Рейтинг: 0 / 0
30.10.2008, 10:52
    #35624875
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача в функцию Posgresql сложного типа данных из C#
создать функцию, аргумент которой имеет тип 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
30.10.2008, 10:55
    #35624885
Денис Ильин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача в функцию Posgresql сложного типа данных из C#
может быть нам поможет XML?
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача в функцию Posgresql сложного типа данных из C# / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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