powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / чё-то не пойму
6 сообщений из 6, страница 1 из 1
чё-то не пойму
    #36335513
Игаев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Informix-e (да и вообще в SQL, который сложнее простых SELECT/FROM/WHERE) я новичёк. Не судите строго.
У меня возникло две проблемы. ОДна вытекла из другой.
1. Пишу тригер на обновление таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TRIGGER trigger_links
UPDATE ON links
AFTER
  (
   UPDATE Client SET STOP= 0 
  )
С этим всё понятно, НО как вставить больше операций. Например, надо создать курсор, пробежаться по курсору, сделать обновления и т.д. А я что могу в этих скобках только одну операцию сделать?

Соглашаюсь с этим (хотя, может можно и по-другому) и пишу процедуру кот. будет делать нужные вещи и вызываться в тригере.

Код: plaintext
1.
2.
3.
4.
CREATE PROCEDURE UPDATE_LINKS();
DECLARE cr_Client CURSOR FOR SELECT IdC FROM Client;

END PROCEDURE;


И выдаёт синтаксическую ошибку на слово DECLARE? Подскажите что я делаю не так? Документацию использую вот отсюда : http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp, но там куча схем абстрактных и не одного нормального примера ни по тригерам ни по курсорам.... дрянь какая-то....
...
Рейтинг: 0 / 0
чё-то не пойму
    #36335694
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вижу вы уже пол-года задаете примерно такие же вопросы и все еще не хотите почитать более подробно документацию и пытаетесь слепо перенести оракловские привычки/знания в другую среду.
К сожалению, в FAQ вы тоже заглядывать не хотите, а ведь там есть много ссылок на дополнительные источники (я понял, что родная документация для вас слишком трудна для понимания).
Возможно, кто то и захочет дать вам конкретный ответ на ваш вопрос, но мне, в силу профессии и характера, хочется всегда "дать удочку", а не "подать кусок хлеба". Для начала, возьмите старенькую (98 года :) статью на русском "Программирование сервера базы данных"
Затем уже другие старенькие книжки с http://www.informix.com.ua/download.htm. Тогда уже можно будет и к современному синтаксису приступить с его "абстрактными схемами".

P.S. "IBM Informix Guide to SQL: Tutorial " - лучше начинать с нее, а не с "IBM Informix Guide to SQL: Syntax". Тогда станет яснее, почему DECLARE не применяется в SPL и что такое ESQL.
...
Рейтинг: 0 / 0
чё-то не пойму
    #36335962
Игаев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даже не пол. года, а год :)
Дело вот какое - моё ПО работает с 3-мя разными СУБД (Oracle,MSSQL,Informix) - сложно оперировать 3-мя разными диалектами. Я старалася вообще избегать чего-то выходящего за простые SELECT/UPDATE/INSERT. Врменени не было, а сроки поджимали.
Теперь же ПО хоть как-то работает и производятся улучшения. Сгружаю многие вещи с программы (Win-приложения) на СУБД. Приходится разбираться в том, что постоянно откладывал в долгий ящик.
Я бы с удовольствием почитал бы какое-то русскоязычное издание по Infromix (я его просто не нашёл на книжном рынке).
Спасибо за ссылки. Кстати, вот эта не работает: http://www.informix.com.ua/download.htm.

Пока я, всё-равно, не нашёл как объявить курсор. Добавление DEFINE или замена DECLARE на DEFINE не помогает....
...
Рейтинг: 0 / 0
чё-то не пойму
    #36336035
В.К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, что-то вроде этого поможет... И еще здесь должна быть документация.
...
Рейтинг: 0 / 0
чё-то не пойму
    #36336042
В.К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще Google реально помогает найти родную документацию в онлайне, с примерами и т.п.
...
Рейтинг: 0 / 0
чё-то не пойму
    #36336144
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИгаевДаже не пол. года, а год :)
Дело вот какое - моё ПО работает с 3-мя разными СУБД (Oracle,MSSQL,Informix) - сложно оперировать 3-мя разными диалектами. Я старалася вообще избегать чего-то выходящего за простые SELECT/UPDATE/INSERT. Врменени не было, а сроки поджимали.
Теперь же ПО хоть как-то работает и производятся улучшения. Сгружаю многие вещи с программы (Win-приложения) на СУБД. Приходится разбираться в том, что постоянно откладывал в долгий ящик.
Я немного посмотрел ваши темы в Оракле и Информиксе и...согласен с советами, которые вам уже давали на днях:
andrey_anonymousИгаев, Вам необходим курс ликбеза по выбранной СУБД.
Начните с Oracle Database Concepts, с главы "Data Concurrency and Consistency" - очень хорошо мозги прочищает.
Application Developer’s Guide - Fundamentals
все то же самое касается и Информикс.
Если уж появилось немного времени, то потратьте его на улучшение ваших базовых знаний по СУБД (даже неважно какой), по их основному назначению в обеспечении целостности информации (разберитесь, что это такое), по многопользовательской среде, по принципам обработки данных. Да, это может быть долговато и скучновато, но . поверьте, это избавит вас в дальнейшем от множества "глупых" вопросов, от исправления ошибок проектирования и программирования, и, в итоге, сэкономит вам на порядок больше времени, чем вы его потратите сейчас на изучение. Вы будете удивлены огромными возможностями как Оракла, так и Информикса, и в то же время увидите. как у них много специфики и особенностей.
Также, советовал бы сохранить ссылки на основные ресурсы (документацию) этих СУБД, активнее пользоваться гуглем, разбираться сначала самому, а не постить один и тот же вопрос в несколько конференций (за кроспостинг могут и наказать :)

Игаев Я бы с удовольствием почитал бы какое-то русскоязычное издание по Infromix (я его просто не нашёл на книжном рынке).
В инете полно книжек в электронном виде, причем много и на русском. В вашем случае, как мне кажется, даже не обязательно Информикс, а любая СУБД такого типа.

Игаев Спасибо за ссылки. Кстати, вот эта не работает: http://www.informix.com.ua/download.htm
Там просто точка в конце попала случайно при копировании :(
Кстати, вопросы администрирования Информикс вам тоже желательно почитать (популярно и на русском см. здесь http://sql.ru/forum/actualthread.aspx?tid=516754#7713187)

Игаев Пока я, всё-равно, не нашёл как объявить курсор. Добавление DEFINE или замена DECLARE на DEFINE не помогает....
В процедурах Информикса курсор неявный, его объявлять не нужно.
Вы почитали ту статью, которую я вам указал в предыдущем ответе ? Если и дальше будете только задвать вопросы и ничего не делать сами - ответов больше не ждите..., по крайней мере от меня.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / чё-то не пойму
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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