Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Работа с хранимыми процедурами / 4 сообщений из 4, страница 1 из 1
17.10.2007, 15:05
    #34875281
creak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с хранимыми процедурами
Вопрос состоит в следуещем:
1 Есть бд в которой есть таблица
СREATE TABLE street
(
id_street smallint NOT NULL,
street_text character(150),
CONSTRAINT street_pkey PRIMARY KEY (id_street)
)
WITHOUT OIDS;
ALTER TABLE street OWNER TO creature;
Так как я не нашел как делать икрементным поле в таблицу создал хранимуя процедуру на добавление записи
2 CREATE OR REPLACE FUNCTION "add"(street_te bpchar)
RETURNS void AS
$BODY$DECLARE
id integer;
begin
if (not exists(select street_text from street where street_text=street_te))
then
select id_street from street ORDER BY id_street DESC;
id:=id_street+1;
insert into street values(id,street_t);
end IF;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION "add"(street_te bpchar) OWNER TO creature;
GRANT EXECUTE ON FUNCTION "add"(street_te bpchar) TO creature;
В которой и происходит добавление с проверкой на повторный ввод и инкрементированием ключевого поля.
Используя SharpDevelup я обращаюсь к базе и вызываю это хранимую процедуру
3
NpgsqlCommand command = new NpgsqlCommand();
сommand.CommandText="add";
command.CommandType=System.Data.CommandType.StoredProcedure;
command.Connection =con;
command.CommandType = CommandType.StoredProcedure;
//и передаю параметры
NpgsqlParameter stree = new NpgsqlParameter("street_te",NpgsqlTypes.NpgsqlDbType.Varchar);
stree.Direction= ParameterDirection.Input;
stree.Value=textBox1.Text;
command.Parameters.Add(stree);
try
{
Все компилится и запускается, но когда я ввожу в поле данные и нажимаю кнопку ввода он мне выдает ERROR: 42601: query has no destination for result data
в чем моя ошибка?
con.Open();
command.ExecuteNonQuery();
con.Close();
}
finally
{
con.Close();
}
...
Рейтинг: 0 / 0
17.10.2007, 15:45
    #34875502
Работа с хранимыми процедурами
как делать икрементным поле в таблицу
id_street SERIAL
...
Рейтинг: 0 / 0
17.10.2007, 16:13
    #34875654
creak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с хранимыми процедурами
я разобрался в чем проблема! :=) Только теперь пожалуйста по подробней о том как сделать инкрементным ключевое поле
...
Рейтинг: 0 / 0
17.10.2007, 16:34
    #34875753
Работа с хранимыми процедурами
Так
Код: plaintext
1.
2.
3.
4.
5.
6.
СREATE TABLE street
(
id_street SERIAL,
street_text character( 150 ),
CONSTRAINT street_pkey PRIMARY KEY (id_street)
) 
Поле id_street будет заполняться значениями из последовательности.
тынц
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Работа с хранимыми процедурами / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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