powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не могу вызвать функцию(((
6 сообщений из 6, страница 1 из 1
Не могу вызвать функцию(((
    #39117898
IPmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть функция
Код: plsql
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.
--select "fnc_create_object"('ddd','ddd','7b70cf00-969e-11e5-8e18-02c2c61bc579', true,'sss')
CREATE OR REPLACE FUNCTION  fnc_create_object
(
	 _ContextName varchar(50),
	 _ObjectType varchar(50),
	 _OwnerId uuid,
	 _Accessed boolean,
	 _Attributes varchar(50)
)
RETURNS uuid  AS 
$BODY$
DECLARE 
 returnid uuid; 
 BEGIN
	insert into "Objects" 
	(
		"ContextName",
		"ObjectType",
		"OwnerId",
		"Created",
		"Updated",
		"Accessed",
		"Attributes"
	)
	values
	(
		_ContextName,
		_ObjectType,
		_OwnerId,
		CURRENT_TIMESTAMP,
		CURRENT_TIMESTAMP,
		_Accessed,
		_Attributes
	) RETURNING "Id" INTO returnid ;
	return returnid;
end
$BODY$
LANGUAGE 'plpgsql'
 


вызываю
Код: 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.
 _objectRepository.Insert(speedUpObject, "public.fnc_create_object", sqlTransaction);

/////
 public Guid Insert(T entity, string insertSql, NpgsqlTransaction sqlTransaction)
        {
            Guid i;
            using (var cmd = _conn.CreateCommand())
            {
                cmd.CommandText = insertSql;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Transaction = sqlTransaction;
                InsertCommandParameters(entity, cmd);
                i = new Guid(cmd.ExecuteScalar().ToString());
            }
            return i;
        }

//////
 protected override void InsertCommandParameters(Object entity, NpgsqlCommand cmd)
        {
            var contextParameter = cmd.CreateParameter();
            contextParameter.ParameterName = "_ContextName";
            contextParameter.DbType = System.Data.DbType.String;
            contextParameter.Value = entity.ContextName;

            var ownerIdParameter = cmd.CreateParameter();
            ownerIdParameter.ParameterName = "_OwnerId";
            ownerIdParameter.DbType = System.Data.DbType.Guid;
            ownerIdParameter.Value = entity.OwnerId;


            var  accessedParameter = cmd.CreateParameter();
            accessedParameter.ParameterName = "_Accessed";
            accessedParameter.DbType = System.Data.DbType.Boolean;
            accessedParameter.Value = entity.Accessed;

            var attributesParameter = cmd.CreateParameter();
            attributesParameter.ParameterName = "_Attributes";
            attributesParameter.DbType = System.Data.DbType.String;
            attributesParameter.Value = entity.Attributes;

            var objectTypeParameter = cmd.CreateParameter();
            objectTypeParameter.ParameterName = "_ObjectType";
            objectTypeParameter.DbType = System.Data.DbType.String;
            objectTypeParameter.Value = entity.ObjectType;


        }


Код: xml
1.
2.
 <add name="SpeedUpConnection" connectionString="Server=127.0.0.1;Port=5432;User Id=postgres;Password=1;Database=SpeedUp;Pooling=false"
       providerName="Npgsql" />


выдаёт ошибку
42883: function public.fnc_create_object() does not exist
...
Рейтинг: 0 / 0
Не могу вызвать функцию(((
    #39117936
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Штатный телепат информирует, что в insertSql идет вызов функции без параметров.

И хоть заинформируй ты команду о своих createParams ах, если ты вызываешь ф-ю без параметров - и ее не существует, значит, ее не существует.

Ты создаешь параметры, создаешь параметры...

А какой SQL их юзает?
select fnc_create_object()?
Туши свет.
...
Рейтинг: 0 / 0
Не могу вызвать функцию(((
    #39118081
IPmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hawkmoon
select fnc_create_object()?


Код: plsql
1.
select "fnc_create_object"('ddd','ddd','7b70cf00-969e-11e5-8e18-02c2c61bc579', true,'sss')


HawkmoonИ хоть заинформируй ты команду о своих createParams ах, если ты вызываешь ф-ю без параметров - и ее не существует, значит, ее не существует.


не совсем понял я же создаю параметры
...
Рейтинг: 0 / 0
Не могу вызвать функцию(((
    #39118147
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IPmenHawkmoon
select fnc_create_object()?


Код: plsql
1.
select "fnc_create_object"('ddd','ddd','7b70cf00-969e-11e5-8e18-02c2c61bc579', true,'sss')


HawkmoonИ хоть заинформируй ты команду о своих createParams ах, если ты вызываешь ф-ю без параметров - и ее не существует, значит, ее не существует.


не совсем понял я же создаю параметры

Ваш код никакие параметры в запрос не передает. Как надо делать так чтобы передавал - это вопрос не по PostgreSQL а по используемому вами языку программирования.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Не могу вызвать функцию(((
    #39118862
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IPmen,

Тебе PG черным по-белому говорит:

function public.fnc_create_object ( ) does not exist.

она может сказать также на:

select public.fnc_create_object(5)
функция public.fnc_create_object (integer) не существует

Или на:
select fnc_create_object('ddd','ddd','7b70cf00-969e-11e5-8e18-02c2c61bc579', true,'sss')
функция fnc_create_object (unknown, unknown, unknown, boolean, unknown) не существует

Но у тебя ругается именно на пустые скобки.

Следовательно - вызов в SQL - БЕЗ ПАРАМЕТРОВ.
Подсказка:
...
Рейтинг: 0 / 0
Не могу вызвать функцию(((
    #39118866
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.npgsql.org/doc/manual-2.2.html

ctrl-F -> Using parameters in a query

new NpgsqlCommand("select * from tablea where column1 = :value1 ", conn)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не могу вызвать функцию(((
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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