Firebird и IBExpert (Страница 1) / Курилка / Форум StopLinux

Объявление

Kwork.ru - услуги фрилансеров от 500 руб.

#1 23-10-10 15:35:47

kenzzzooo
джинн, етить-колотить....
Из лампы
Зарегистрирован: 28-02-10
Сообщений: 1,593

Re: Firebird и IBExpert

хз... не работал, но вот это может быть, или это не совсем то?


ххх: у тебя iperf есть?
yyy: iperf? перфоратор от Apple чтоле?

xxx: Во всем мире уже известны российские дороги и дураки. Сейчас к ним еще домены добавятся.

Неактивен

#2 23-10-10 19:25:27

bALMER
не мешайте, я творю windows 8
Зарегистрирован: 12-10-10
Сообщений: 436

Re: Firebird и IBExpert

CREATE [OR ALTER] TRIGGER name FOR tablename
  [ACTIVE | INACTIVE]
  {BEFORE | AFTER} {INSERT | UPDATE | DELETE}
    [OR {INSERT | UPDATE | DELETE}
      [OR {INSERT | UPDATE | DELETE}]]
  [POSITION number]
  AS <trigger_body>

https://www.destructor.de/firebird/trigger.htm

зачем нужен IBExpert?

Добавлено спустя 02 мин 07 с:

pavel2403 пишет:

так что бы если заноситься новая запись С любым номером, все остальные записи подвигались.

куда подвигались?


Слорознание - первая ступень к успешному эникею!

Неактивен

#3 23-10-10 23:10:27

bALMER
не мешайте, я творю windows 8
Зарегистрирован: 12-10-10
Сообщений: 436

Re: Firebird и IBExpert

pavel2403 пишет:

А вобще товарищь Балмер, я смотрю вы влезете в любую дырку, даже только услышав звон и нагуглив первое попавшее вхождение, вы уже спешите отметиться здесь.  wink

Я просто не могу понять, как можно бится над пустякойвой задачкой целый день big_smile  триггер сделать проще простого.

pavel2403 пишет:

Иногда лучше жевать, и посмотреть, что скажут умные дяди. wink

Это ты себя назвал умным дядей? lol после этого?

pavel2403 пишет:

А зачем нужна утилита Pl\SQL для Oracle? А зачем MySQLAdmin и пр утилиты для работы с БД ведь есть же консоль!

Pl/SQL=MySQLAdmin lol  Паша, ну ты гонишь big_smile

и ответь ка:

Добавлено спустя 04 мин 42 с:

bALMER пишет:

pavel2403 пишет:

    так что бы если заноситься новая запись С любым номером, все остальные записи подвигались.

куда подвигались?

Редактировался bALMER (23-10-10 23:17:48)


Слорознание - первая ступень к успешному эникею!

Неактивен

#4 23-10-10 23:34:49

ikkunan salvataja
Участник
Зарегистрирован: 30-01-10
Сообщений: 2,688

Re: Firebird и IBExpert

Пашик, все твои беды оттого, что у тебя верхняя пуговичка не застёгнута ты пытаешься опенсурс задействовать. Поставь уставной MS SQL и всё у тебя получится.


Yesterday it worked.
Today it is not working.
Windows is like that.

Неактивен

#5 24-10-10 00:14:55

bALMER
не мешайте, я творю windows 8
Зарегистрирован: 12-10-10
Сообщений: 436

Re: Firebird и IBExpert

DECLARE 
t INT;
t1 TEXT;
BEGIN 
SELECT INTO t MAX(P_No) FROM Personal;
SELECT INTO t1 Name FROM Personal WHERE P_No=NEW.P_No;

IF t1 IS NULL THEN 
RETURN NEW;
ELSE 
NEW.P_No=t+1;
RETURN NEW;
END IF;
END;

как-то так wink это как пример, не оптимизированный, но все же лучше чем ничего wink

Редактировался bALMER (24-10-10 00:15:25)


Слорознание - первая ступень к успешному эникею!

Неактивен

#6 24-10-10 00:39:53

bALMER
не мешайте, я творю windows 8
Зарегистрирован: 12-10-10
Сообщений: 436

Re: Firebird и IBExpert

pavel2403 пишет:

Select Count(P_No) As t  From Personal

не, надо максимальное, ибо count возвращает количество, а не максимальное значение. Т.е. совпадать могут. А с max не совпадут.


Слорознание - первая ступень к успешному эникею!

Неактивен

#7 24-10-10 10:37:00

Кантрабас
Недоперепил...
Из Vaughan
Зарегистрирован: 15-05-10
Сообщений: 170

Re: Firebird и IBExpert

pavel2403 пишет:

Это все бла-бла. Докажи что ты не очередной линукс-Иксперт. Короче, есть таблица Personal в ней поля P_No( Integer), Name(Char(64)) ну и т д
Задача. Необходимо сделать триггер, что бы при выполенении Insert Into Personal (P_No, Name) Values (Любое число,'любое значение') если есть сотрудник с таким номером, то его номер менялся бы на последний в таблице, а его место заняла новая запись. Давай, вперде.
Это ведь легко, ты сам сказал. wink  Да, все что до AS можешь пропустить.

Не понимаю над чем тут вообще ломать голову? Не могу понять...

Дизайн таблицы какой-то ебанутый. Что за апликация, полагающаяся на столь уебищную логику?


An internal error occurred while showing an internal error.

Неактивен

#8 24-10-10 15:51:45

Кантрабас
Недоперепил...
Из Vaughan
Зарегистрирован: 15-05-10
Сообщений: 170

Re: Firebird и IBExpert

Павел! Ты не можешь сформулировать задачу четко.
Вот первая формулировка:

Задача. Необходимо сделать триггер, что бы при выполенении Insert Into Personal (P_No, Name) Values (Любое число,'любое значение') если есть сотрудник с таким номером, то его номер менялся бы на последний в таблице, а его место заняла новая запись. Давай, вперде.

То есть, если такой номер уже есть, сменить его на САМЫЙ ПОСЛЕДНИЙ +1.

Вот вторая формулировка:

То что ты написал- просто ахинея во второй части. Потому что никакого обновления таблицы со сдвигом записей не будет. На самом деле будет просто вставлена запись с последним номером, а те что были останутся на месте.

Из которой молодые подаваны понимают, что надо сдвигать остаток таблицы вперед, чтобы освободить место для свежей записи...
окей, вот твоя идея алгоритма сдвига:

for g = New.P_No to t+1
   update Personal Set P_No = g Where P_No >New.P_No;
   next g

То есть, если у нас есть:
5, Вася
6, Петя
7, Паша
то после первой итерации мы получим:
6, Вася
6, Петя
6, Паша...
И после второй 7,7,7

Вот еще один вариант:

update Personal Set P_No= P_No +1  Where P_No >= New.P_No;

Тут я не уверен, работаю с MySql и там такое просто не пролезет

Опять же непонятна логика такой таблицы, насколько непрерывны эти номера итд


An internal error occurred while showing an internal error.

Неактивен

#9 24-10-10 20:44:30

kenzzzooo
джинн, етить-колотить....
Из лампы
Зарегистрирован: 28-02-10
Сообщений: 1,593

Re: Firebird и IBExpert

Кантрабас, вот это:

pavel2403 пишет:

Задача. Необходимо сделать триггер, что бы при выполенении Insert Into Personal (P_No, Name) Values (Любое число,'любое значение') если есть сотрудник с таким номером, то его номер менялся бы на последний в таблице, а его место заняла новая запись. Давай, вперде.

лично мне позволило понять, что нужна вставка со сдвигом. задача поставлена вполне конкретно, если честно.


ххх: у тебя iperf есть?
yyy: iperf? перфоратор от Apple чтоле?

xxx: Во всем мире уже известны российские дороги и дураки. Сейчас к ним еще домены добавятся.

Неактивен

#10 25-10-10 00:24:28

bALMER
не мешайте, я творю windows 8
Зарегистрирован: 12-10-10
Сообщений: 436

Re: Firebird и IBExpert

pavel2403 пишет:

BEGIN
update Personal Set P_No= P_No +1  Where P_No >= New.P_No;
END

убить мало(

пример:

1 | Name1
2 | Name2
3 | Name3

NEW.P_No=2

update Personal Set P_No= 3  Where P_No >= New.P_No

Где профит??

и где возвращаемое значение? Паш, ты в своем репертуаре(

Редактировался bALMER (25-10-10 00:25:05)


Слорознание - первая ступень к успешному эникею!

Неактивен

Kwork.ru - услуги фрилансеров от 500 руб.
Мой VPS с 2016 года !
✅ Виртуальные от 300 ₽/месяц, RAM 1-10GB, DISK 20-360 GB;
✅ Выделенные от 3000 ₽/месяц. RAM 4-64GB, DISK до 4TB;
✅ Intel Xeon, SSD, XEN, iLO/KVM, Windows/Linux, Администрирование;
✅ Бесплатно Full Backup и Anti-DDoS.





Подвал форума

Под управлением FluxBB
Модифицировал Visman

Яндекс.Метрика