Страница 1 из 2

Снесли системную настройку

Добавлено: 18 мар 2004, 01:21
Nick
Базовая валюта: Была НДЕ - поставили рубли.
Не можем вернуть НДЕ назад. Что делать? :o

Re: Снесли системную настройку

Добавлено: 18 мар 2004, 02:08
Nick
Нашел, что при смене этой настройки меняется файл:

C:\GAL711\DATA\D_TUNE\Tuneval.dat

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

По-ходу Tuneval.dat отвечает за все общесистемные настройки. Как из него можно выцепить именно базовую валюту?

Re: Снесли системную настройку

Добавлено: 18 мар 2004, 03:27
Nick
Нашел - это табличка Tuneval, поля CompVal и StrVal, но поменять их не могу, т.к. на любой (вообще любой) запрос Update Галактика ругается. Select же нормально работает.

Re: Снесли системную настройку

Добавлено: 18 мар 2004, 03:29
Nick
Вернее: sql-компилятор Support'a ругается.

Re: Снесли системную настройку

Добавлено: 18 мар 2004, 11:19
edward_K
а в администраторе настроек не пробовал F4 нажать?
вообще какое то окошко то для смены появляется или вообще ничего? :)

Re: Снесли системную настройку

Добавлено: 18 мар 2004, 11:30
Галя
Как не можете? встаете на эту настроку, F3, открывается еще раз окошко с настройкой - рубли там стоят. На них жмете просто Delete, поругается немножко, на все соглашайтесь - поставит НДЕ

Re: Снесли системную настройку

Добавлено: 18 мар 2004, 13:44
Nick
Все, вернул :) Как написала Галя, спасибо! Моя ошибка была в том, что я искал НДЕ в списке валют, а не del жал для установки настройки по-умолчанию.

Остались такие вопросы - подскажите пожалуйста:

1. Почему таблицы tuneval нет в списке таблиц системы? Где ее можно найти?

2. При запросе Select * from tuneval; в результате возвращаются таблица с такими заголовками некоторых полей: "Comp", "String". А если хочется выбрать только их ("Comp", "String"), то надо писать так: Select t.CompVal, t.StrVal from tuneval t; а не так: Select t.Comp, t.String from tuneval t; - В этом случае ошибка. Почему такая разница в именовании одних и тех же полей в разных запросах?

3. В чем ошибка в запросе:

Update tuneval t
Set t.CompVal=0000000000000000h
where t.Nrec=0000000000000004h;

Галактика пишет:

Ошибка: Ожидалась ";"(стр.3 поз.1 в INPUT)
where t.Nrec=0000000000000004h;
^

Re: Снесли системную настройку

Добавлено: 18 мар 2004, 14:22
Deinis
Ты перепутал местоположение операторов Set и Where.
Осторожнее будть с этим. У нас так один программист в свое время (еще на 5.74 или раньше) грохнул все ордера. Он вообще был специалистом в SQL. А то, что галактический SQL - это "донельзя обрезанное подобие реального SQL" - не знал. И составил Delete-запрос по своему, по-правильному ;). Компилятор, не найдя на своем месте (!!!) оператор "Where" сделал просто - применил оператор Delete ко всем складским ордерам. :(
В общем, я стараюсь использовать все как можно формальнее. То есть при употреблении синонима таблицы я, перестраховываясь, пишу "synonym", все значения типа comp заключаю в скобки. Может это и перестраховка, но так оно надежнее будет. Ну и элегантнее :))

Update synonym TuneVal T
Where (( comp(0000000000000004h) == T.nRec ))
Set T.CompVal=comp(0000000000000000h)
;

Re: Снесли системную настройку

Добавлено: 19 мар 2004, 03:18
Nick
И ведь действительно работает :)
Но ведь я ж читаю Pervasive SQL 2000i Docs:

The UPDATE statement allows you to modify column values in a database.

Syntax
UPDATE table-name [ alias-name ]
SET column-name = < expression | subquery >
[ , column-name = < expression | subquery >]...
[ WHERE search-condition ]

Сначала ж Set, а Where потом.
Запутался :P

Re: Снесли системную настройку

Добавлено: 19 мар 2004, 08:06
Goblin
Nick, а зачем ты читаешь Pervasive SQL 2000i Docs, а запрос пишешь в Support'e в модуле SQL ? Тут два варианта - либо продолжаешь читать Pervasive SQL 2000i Docs, но запросы писать будешь в Pervasive Control Centre (это если у тебя есть стандартные словари галактики - утилита ADF2DDF решает это)... Либо бросай читать Pervasive SQL 2000i Docs, и начинай читать ИНСТРУМЕНТАЛЬНЫЙ КОМПЛЕКС «SUPPORT»
Модуль «SQL»
РУКОВОДСТВО ПРИКЛАДНОГО ПРОГРАММИСТА
2003

Тогда веселых ситуаций избежишь :)

Re: Снесли системную настройку

Добавлено: 19 мар 2004, 11:11
Nick
Спасибо, все понятно 8)

Re: Снесли системную настройку

Добавлено: 19 мар 2004, 12:42
m0p3e
Зачем изобратать велсипед, когда все функции работы с настройками доступны как паблик? Не надо пыталться менять их запросами!!! Одной tuneval дело обходится только в случае простых настроек!!!!

Re: Снесли системную настройку

Добавлено: 20 мар 2004, 23:25
Nick
>> Зачем изобратать велсипед, когда все функции работы с настройками доступны как паблик?

В смысле, изменять их через меню настроек?

Re: Снесли системную настройку

Добавлено: 21 мар 2004, 16:08
Deinis
>> В смысле, изменять их через меню настроек?
Нет. Морзе имеет в виду, что если ты по какой-то причине не хочешь изменять настройку в самом стандартном интерфейсе Галактики (к чему ты все ж таки пришел), а захочешь изменить программным путем - то знай, что очень редко бывает так, что исправлять значение нужно только в одной таблице.
Исправить TuneVal с помощью SQL-запроса, даже грамотно построенного - это скорее всего НЕ решение проблемы. Значения настроек могут храниться не только в TuneVal - ИМЕННО ЭТО ХОТЕЛ ДОНЕСТИ ДО ТЕБЯ МОРЗЕ. Да и вообще в реляционной БД исправление только одной таблицы - не всегда правильное и работающее решение.
Если все же захочешь менять настройки программным путем - используй свой интерфейс (или link-форму, или ARD-отчет) где к настройкам обращайся через стандартные функции (типа coGetTune или SetTune и т.п.).

Возник вопрос - где взять эти функции? Дык, батенька, вы не спите и посмотрите раздел "Опыт" этого форума. Тама есть такая штука, как "Документация по работе с функциями реестра настроек Галактики 5.8x".

Re: Снесли системную настройку

Добавлено: 23 мар 2004, 17:49
Nick
Понятно, погляжу 8)