Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Открыть новую тему     Написать ответ в эту тему

EugeneBoss3



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kursist

Цитата:
Вот ссылка на файл - в нем база данных и клиент с исходниками.  
http://files.wyw.ru/3744134  
 

Похоже, ссылка битая. Можно обновить?

Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 02:39 18-04-2010
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Похоже, ссылка битая. Можно обновить?

EugeneBoss3
битая, т.е. уже более полугода прошло! кто ж так долго файлы держать на бесплатном хостинге будет?!!
1) обновить ссылку, скорее всего, может только сам Kursist. попробуйте с ним связаться.
2) насколько я помню, это был какой-то промежуточный результат работы данного господина (причём, судя по всему - с какими огрехами/недоработками/ошибками). оно Вам надо?

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 10:06 19-04-2010
EugeneBoss3



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь поюзать Вариант использования КЛАДР Андрея Дмитриева для Firebird, но при созании базы выдает ошибку. Коллеги, помогите разрулить ошибки в хранимых процедурах.  
код.
 
Добавлено:
SERGE_BLIZNUK
Я только начал осваивать Firebird, поэтому изучаю разные варианты работы с серверными базами на примерах.
Цитата:
оно Вам надо?
Возможно нет, если примеры с ошибками.

Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 12:18 20-04-2010
Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneBoss3
Нормальным английским языком написано, что

Цитата:
Procedure GET_FULLADDRESS_2 is not selectable (it does not contain a SUSPEND statement)

Т.е. в процедуре GET_FULLADDRESS_2 нет оператора SUSPEND, поэтому она не возвращает данные, следовательно, выборка из нее не получится:

Код:
 
SELECT SA FROM GET_FULLADDRESS_2(:ADDRESS_TYPE, :ADR_REG, :ADR_ID)
 

То же самое с процедурой GET_FULLADDRESS_20.

----------
Чем больше узнаю людей, тем больше люблю компьютеры.

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 04:31 21-04-2010
EugeneBoss3



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tantos

Цитата:
в процедуре GET_FULLADDRESS_2 нет оператора SUSPEND

На эту процедуру IBExpert не ругается и SUSPEND в ней есть. Почему ошибка не понятно?
код.

Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 11:40 21-04-2010
Odysseos



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneBoss3
 
Я Вам уже ответил в теме "Прикладное программирование" - продублирую:
 

Цитата:
 
В коде создания этих процедур (который наверняка вот такой: create procedure ... as begin end;) между begin и end вставьте suspend;.
 

 
Процедуры - рекурсивные, причем вызывают себя внутри себя не как execute procedure, а как select ... from - то есть, когда Вы делаете alter procedure с таким кодом, на момет попытки его компиляции эти процедуры еще не выполняют suspend. Поэтому - технология такова, что надо сначала создать эти процедуры с одним ключевым словом suspend внутри begin ... end, без остального кода - а только потом делать alter.
 
...Собственно - а покажите код именно создания этих процедур, то есть - create procedure ..., а не alter procedure ...

Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 12:00 21-04-2010 | Исправлено: Odysseos, 12:01 21-04-2010
EugeneBoss3



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Odysseos

Цитата:
покажите код именно создания этих процедур, то есть - create procedure

Привожу полный код создания базы для Firebird
код.

Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 01:25 22-04-2010
Odysseos



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneBoss3
 
Вот этот код:
 

Код:
 
CREATE PROCEDURE GET_FULLADDRESS_2 (ADDRESS_TYPE SMALLINT, CR SMALLINT, CA BIGINT)
RETURNS (SA VARCHAR(500))
AS
BEGIN
  EXIT;
END^
 
CREATE PROCEDURE GET_FULLADDRESS_20 (ADDRESS_TYPE SMALLINT, CR SMALLINT, CA BIGINT, CV SMALLINT)
RETURNS (SA VARCHAR(500))
AS
BEGIN
  EXIT;
END^
 

 
поменяйте на вот такой:
 

Код:
 
CREATE PROCEDURE GET_FULLADDRESS_2 (ADDRESS_TYPE SMALLINT, CR SMALLINT, CA BIGINT)
RETURNS (SA VARCHAR(500))
AS
BEGIN
  SUSPEND;
END^
 
CREATE PROCEDURE GET_FULLADDRESS_20 (ADDRESS_TYPE SMALLINT, CR SMALLINT, CA BIGINT, CV SMALLINT)
RETURNS (SA VARCHAR(500))
AS
BEGIN
  SUSPEND;
END^
 

 
Больше в скрипте ничего не трогайте.

Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 02:00 22-04-2010 | Исправлено: Odysseos, 02:02 22-04-2010
EugeneBoss3



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Odysseos
Применил изменения - ошибок не выдает! Спасибо!!!

Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 03:08 23-04-2010
kolyas



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день.  
Подскажете, пожалуйста, как обновить одно значение
 
с Interbase не не очень дружен, (как-то страшат меня все begin'ы,обычно общаюсь с mysql, а там такого нету..) а база не моя, как бы не сломать =)
 
дано таблицы
 
dogov
  sprav_id, stat,adr_id
 
adress
  adr_id, town_id
 
нужно обновить поле stat с 0 на 1
там где town_id= 200 и sprav_id=131

Всего записей: 137 | Зарегистр. 19-03-2007 | Отправлено: 14:50 17-05-2010 | Исправлено: kolyas, 14:53 17-05-2010
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kolyas
Проапдейтить поле так же само как и в mysql + подзапрос для получения adr_id.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 14:59 17-05-2010
Odysseos



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kolyas
 
А причем тут begin'ы, если это делается одним одинаковым запросом во всех сиквел-серверах?
 

Код:
 
update dogov
  set stat = 1
  where stat = 0
      and sprav_id = 131
      and adr_id in (select adr_id from adress where town_id = 200)
 

Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 15:15 17-05-2010
kolyas



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
volser, Odysseos
 
спасибо..
 
а про begin'ы.. просто заглянул в процедуры UPDATE которые в базе были а там куча всего .. вот и  подумал что все сложнее чем есть..

Всего записей: 137 | Зарегистр. 19-03-2007 | Отправлено: 17:03 17-05-2010
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть ли у кого русифицированный interbase.msg

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 17:22 18-05-2010
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andryshok
А зачем? Эти ошибки читает только программист.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 17:32 18-05-2010
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Andryshok  
А зачем? Эти ошибки читает только программист.

Ну допустим попытка записи неправильного значения или недопустимого, ведь сервер вернет ошибку, может можно как то узнать что за ошибка и  вывести свое сообщение

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 09:11 19-05-2010
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andryshok
Обрабатывай ошибки на клиенте.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 09:37 19-05-2010
jonikDk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
есть ли у кого русифицированный interbase.msg

вообще на sql.ru проскакивало что в планах firebird есть локализация ошибок, только наверное это не скоро будет.

Всего записей: 1599 | Зарегистр. 01-03-2004 | Отправлено: 12:45 19-05-2010
Odysseos



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andryshok
 
Если очень надо - можете перевести самостоятельно: в IBExpert'е есть редактор для этого файла (Инструменты - Локализация сообщений Interbase).

Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 13:19 19-05-2010 | Исправлено: Odysseos, 14:14 19-05-2010
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я как-то пытался переводить. После этого моя программа выдавала вместо кириллицы кракозябры. Не стал разбираться почему. Я бросил эту затею.

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 13:44 19-05-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru