• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Ошибка после обновления клиента сетевой версии

Автор nyushiki, Жовтень 09, 2013, 12:07:21

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

nyushiki

Обновили клиент без обновления сервера. программа запускается, но каждый раз выдает ошибку (картинка во вложении). Как это можно исправить?

Creat

Ещё раз обновите клиента. Клиенты обновлены на всех станциях? В базу самосстоятельных изменений не делали?

nyushiki

что значит самостоятельные обновления базы?

nyushiki

Установили на всех станциях. сначала один раз, потом переустановили.
Ошибка теперь такая (во вложении).
На сервере ничего не делали.

Creat

Не обновления я сказал , а изменения. Добавлять поля, изменять структуру.
У меня было похлже вашему предупреждение когда базу принес с обной версии а подключил к другой.
Обновите клиента на всех станциях.

Creat


admin

Думаю установлен не родной Firebird, переустановите Сервер и чтобы при его установке не было ошибок.

nyushiki

#7
Сервер именно переустанавливать или просто обновить?
У нас Firebird v. 1.5.6 под Линуксом стоит. Как его переустанавливать?)

admin

Цитата: nyushiki від Жовтень 09, 2013, 14:39:44
У нас Firebird v. 1.5.6 под Линуксом стоит. Как его переустанавливать?)

Тут инструкция
http://www.softbalance.com.ua/forum/index.php/topic,2046.msg11525.html#msg11525
а именно п.5 у вас не выполнен.

nyushiki

#9
Сделали по инструкции.  Теперь вот такую ошибку выдает:

CREATE PROCEDURE tovar_nacenka (
  tovar_id_in INTEGER,
  grupa_id_in INTEGER,
  cena_in DOUBLE PRECISION,
  cena_r_in DOUBLE PRECISION,
  cena_o_in DOUBLE PRECISION,
  cena_1_in DOUBLE PRECISION,
  cena_2_in DOUBLE PRECISION,
  cena_3_in DOUBLE PRECISION)
RETURNS (
  cena_out DOUBLE PRECISION,
  cena_r_out DOUBLE PRECISION,
  cena_o_out DOUBLE PRECISION,
  cena_1_out DOUBLE PRECISION,
  cena_2_out DOUBLE PRECISION,
  cena_3_out DOUBLE PRECISION)
AS
  DECLARE VARIABLE grupa_id INTEGER;
BEGIN
  --
  -- Пример наценки скриптом:
  --
  -- Начало скрипта наценки
  IF(grupa_id_in = 34) THEN
  BEGIN
    -- наценка 40% розничной, 30% оптовой, 20% цена 1, 15% цена 2, +2 грн. для цена 3, на группу ID = 34, округление до двух знаков после запятой
    cena_r_out = udf_roundto(cena_in * 1.4, 2);
    cena_o_out = udf_roundto(cena_in * 1.3, 2);
    cena_1_out = udf_roundto(cena_in * 1.2, 2);
    cena_2_out = udf_roundto(cena_in * 1.15, 2);
    cena_3_out = udf_roundto(cena_in + 2, 2);
  END
  ELSE
  BEGIN
  -- для всех других групп другие условия
    IF (cena_in <= 5) THEN
    BEGIN
      -- наценка 20% на розницу если цена прихода от 0грн. до 5грн.
      cena_r_out = udf_roundto(cena_in * 1.2, 2);
    END
    ELSE
    IF (cena_in > 5 AND cena_in <= 10) THEN
    BEGIN
      -- наценка 18% на розницу если цена прихода от 5грн. до 10грн.
      cena_r_out = udf_roundto(cena_in * 1.18, 2);
    END
    ELSE
    IF (cena_in > 10) THEN
    BEGIN
      -- наценка 14% на оптовой если цена прихода от 10грн.
      cena_o_out = udf_roundto(cena_in * 1.14, 2);
      --наценка 10% розничной от оптовой цены
      cena_r_out = udf_roundto(cena_o_out * 1.10, 2);
      --наценка +5 грн от оптовой цены для цены 1
      cena_1_out = udf_roundto(cena_o_out + 5, 2);
    END
  END
  -- Конец скрипта наценки
  SUSPEND;
END

DataM.sScript:
Can't format message 13:393 -- message file C:\Program Files\firebird.msg not found.
Unsuccessful metadata update.
STORE RDB$PROCEDURE_PARAMETERS failed.
Lock conflict on no wait transaction.
Attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_18".

admin

При обновлении надо обязательно выходить из всех клиентов кроме того который делает апдейт. Если выходили значит пишите на поддержку.