powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Где взять Key для ASA Developer Edition 9
20 сообщений из 20, страница 1 из 1
Где взять Key для ASA Developer Edition 9
    #32501942
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитал на форуме от ASCRUS, что: Бесплатно распространяется ASA Developer Edition 9 для разработчиков, ....
Зарегистрировался, скачал, c www.sybase.com - 'SQL Anywhere 9.0.1 for Windows 32-bit Operating Systems' а там :

1. Вторая страница инсталляции License Agreement, России там естественно нет.

2. Третья страница инсталляции. Registration Key, само собой, мне его не прислали. При регистрации свой E-mail я указал правильно! Я им конечно написал на contact_us@ianywhere.com но пока ни ответа ни ....

Кто-нибудь знает этот Key?
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32501963
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм, я у них качал Developer, зарегистрировался, в лицензии выбираю Европа, Средний Восток, Африка, ключик мне в течении дня прислали. Вполне возможно, что у них просто Ваш запрос посеялся - в связи с переводом сайта Sybase.com на их портал путаница сейчас там страшная и накладки случаются. Так как правилами sql.ru запрещено публиковать какие то не было ключи, даже и от бесплатных Developer Edition, я Вам вышлю ключик по почте.
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32502256
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, ключ подошел, и база с ASE12.5 на ASA 9 перенеслась.
Даже все данные без ошибок. Будем юзать.
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32502347
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет интересно услышать от Вас потом, насколько успешным оказался перенос БД с ASE на ASA и впечатления о кач-ве, скорости, устойчивости, затрат времени на переоптимизацию запросов и т.д. :)
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32506081
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если честно, перенеслась то она перенеслась, но многие вещи работать перестали.

1. Первое впечатление, что ASE это все-таки более надежная база, корректно отрабатывающая более глубокую вложенность, хотя бы тех же хранимых процедур. У меня перестали работать многие процедуры, которые вызывали другие хранимые процедуры. Процедура без всякого кода шибки просто ничего не делает. :( Приходится переписывать без вложений, тогда все Ok.

2. Второй мелкий недостаток ASA при компиляции техже процедур, т.е. при создании хранимых процедур в ASA через ISQL, а их естественно не один десяток, нельзя в разных процедурах использовать одинаковые имена открываемых курсоров. Пришлось выписать имена всех курсоров и делать их уникальными, чтобы переносить процедуры одним скриптом. :(

3. Ну еще не поддержка в ASA % это вообще не считается, у меня всего 3-4 таких использования.

Но одно единственное преимущество из за которого все три пункта выше я готов простить, которое есть в ASA и никогда не будет в ASE. Это то, что можно скопировать базу ASA как файл на другой компьютер, прописать ODBC и запустить. Сколько потребовалось на это времени, я потом напишу, если все исправлю. :)
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32506101
Stressman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К ASCRUS`у. Я извиняюсь, у меня аналогичная проблема - уже два дня жду ключика - может есть шанс и мне его на почту выслать. Заранее спасибо.
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32506125
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Badger
1. Первое впечатление, что ASE это все-таки более надежная база, корректно отрабатывающая более глубокую вложенность, хотя бы тех же хранимых процедур. У меня перестали работать многие процедуры, которые вызывали другие хранимые процедуры. Процедура без всякого кода шибки просто ничего не делает. :( Приходится переписывать без вложений, тогда все Ok.
Скорее всего не правильно вызываешь процедуру. Можно пример "неработающей вложенности"?

Badger2. Второй мелкий недостаток ASA при компиляции техже процедур, т.е. при создании хранимых процедур в ASA через ISQL, а их естественно не один десяток, нельзя в разных процедурах использовать одинаковые имена открываемых курсоров. Пришлось выписать имена всех курсоров и делать их уникальными, чтобы переносить процедуры одним скриптом. :(
ээээ... что-то у вас там странное творится :) У меня довольно много процедур имеют одинаковые имена локальных курсоров. Никаких проблем не замечал.

В общем вызов одной процедуры из другой чаще всего делается так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create procedure sp_a(in pStartDate date, in pEndDate date)
begin
  declare crsr no scroll cursor for call DBA.sp_b(pStartDate, pEndDate);
   ......
   open crsr;
   loop
      fetch next crsr into mCol1, mCol2, mCol3;
      ....
   end loop;
   close crsr;
   .....
end;
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32506699
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1. Первое впечатление, что ASE это все-таки более надежная база, корректно отрабатывающая более глубокую вложенность, хотя бы тех же хранимых процедур. У меня перестали работать многие процедуры, которые вызывали другие хранимые процедуры. Процедура без всякого кода шибки просто ничего не делает. :( Приходится переписывать без вложений, тогда все Ok.
Быть такого не может, у ASA с поддержкой ХП все в порядке. И возможен вызов процедур любого уровня вложенности. Почему перестали работать процедуры - это уже вопрос установок опций совместимости вашей БД с ASE. Советую Вам прочитать главы о совместимости ASA c TSQL и ASE в BOL, там прямо по опциям расписано, что надо включать, чтобы добиться совместимости. По умолчанию в созданной БД полной совместимости с ASE нет. Плюс Вы всегда можете пройти дебаггером неработающие процедуры и выявить, где что не так выполняется. Дебаггер навороченный и Вам здорово пригодится в такой работе.

P.S. Кстати думаю это не критерий надежности. Надежность все таки - это когда сервер и данные БД никогда и не при каких обстоятельствах не падают.

автор2. Второй мелкий недостаток ASA при компиляции техже процедур, т.е. при создании хранимых процедур в ASA через ISQL, а их естественно не один десяток, нельзя в разных процедурах использовать одинаковые имена открываемых курсоров. Пришлось выписать имена всех курсоров и делать их уникальными, чтобы переносить процедуры одним скриптом. :(
Опять же читайте в BOL про DECLARE CURSOR (TSQL). Там описаны все что не поддерживается для ASE-совместимости в ASA. Например, нет глобальных курсоров, область видимости курсоров ограничена областью их блока обьявления (BEGIN...END), и т.д. Так что странно - в разных процедурах можно использовать одинаковые имена курсоров, так как они будут видны только для своих процедур, где были обьявлены.

P.S. Навскидку дурацкое подозрение: у Вас кстати в скрипте между ХП оператор GO стоит ?

автор3. Ну еще не поддержка в ASA % это вообще не считается, у меня всего 3-4 таких использования.
Ну это туда же о совместимости - сделайте вот так:
Код: plaintext
SET OPTION PUBLIC.PERCENT_AS_COMMENT = OFF;

Теперь оператор % будет означать модульную операцию.

авторНо одно единственное преимущество из за которого все три пункта выше я готов простить, которое есть в ASA и никогда не будет в ASE. Это то, что можно скопировать базу ASA как файл на другой компьютер, прописать ODBC и запустить. Сколько потребовалось на это времени, я потом напишу, если все исправлю. :)
Это не веский довод переводить БД с ASE на ASA :) Вот если у Вас БД весит меньше 100 гигов, кол-во активных подключений не превышает 100 сессий, очень хочется получить расширенные возможности в SQL и OLAP, не планируются кластеры, продукт тиражный и должен стоять в различных местах, где не планируется использование труда сисадминов, то тогда ASA лучший выбор. А как архитектура сервера сделано, это не довод. Например, с одной стороны конечно приятно, что в ASA скопировал файл и все, вместе с настройками и грантами перенеслось, а с другой стороны все это в том же ASE или MSSQL не долго в SQL-скрипт загнать и автоматизировать перегонку БД на другой сервер. Зато у ASE и MSSQL можно под одним сервером одновременно много БД крутить, причем оптимизатор сможет строить гетерогенные запросы, а в ASA все это будет идти через RemoteServer и эффективность запросов, обращающихся одновременно к родной и присоединенной БД будет на порядки ниже.
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32506700
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку - Stressman , письмо Вам послал.
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32507516
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ух, сколько всего! Сразу и не ответишь :)

Код: plaintext
Скорее всего не правильно вызываешь процедуру. Можно пример "неработающей вложенности"? 

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

Ну вот пол дня убил нашел: - в ASA это не проходит, это было во вложенной процедуре, так что отыскать было не просто.
SELECT Convert (datetime, Convert (varchar(10), GetDate(), 101))

Подобных мест наверное сотни....

Код: plaintext
ээээ... что-то у вас там странное творится :) У меня довольно много процедур имеют одинаковые имена локальных курсоров. Никаких проблем не замечал. 

Я имел ввиду ситуацию, когда компилируешь все процедуры разом, например в ISQL. ASA не дает компилировать процедуру если аналогичное имя курсора было объявлено в другой процедуре выше по тексту. :( Не глобальный курсор! :)
...
DECLARE cursor_stock CURSOR FOR
.....
;
....
DECLARE cursor_stock CURSOR FOR
.....
;
Это нужно когда переносишь базу с ASE на ASA данные переносятся с помощью утилите Migrate Database, а процедуры переносить приходится руками. Я не нашел способа мегрировать процедуры. А если их под 1000.
Основная база ведется на ASE, но есть мобильные пользователи и для них нужна ASA а потом они синхронизируются. Постепенно структура ASE, как основной базы, меняется и процедуры вместе с ней, и через некоторое время нужно пересоздать базу на ASA, быстро и чтобы все работало. :)

Код: plaintext
Советую Вам прочитать главы о совместимости ASA c TSQL и ASE в BOL, там прямо по опциям расписано, что надо включать, чтобы добиться совместимости. 

Где это написано, очень, очень интересно!!!

Код: plaintext
P.S. Навскидку дурацкое подозрение: у Вас кстати в скрипте между ХП оператор GO стоит ? 
:)) нет стоит ;

Код: plaintext
Плюс Вы всегда можете пройти дебаггером неработающие процедуры и выявить, где что не так выполняется. Дебаггер навороченный и Вам здорово пригодится в такой работе. 

А где это, и как им пользоваться?
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32507716
ASAGuest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Badqer
> Где это написано, очень, очень интересно!!!
Ну, как минимум:
ASA Database Administration Guide
Database Options
Compatibility options

И, на вскидку,
SET OPTION PUBLIC.allow_nulls_by_default = 'ON'
go
SET OPTION PUBLIC.CHAINED = 'ON'
go
SET OPTION PUBLIC.ON_TSQL_ERROR = 'Stop'
go
SET OPTION PUBLIC.CONTINUE_AFTER_RAISERROR = 'On'
go
SET OPTION PUBLIC.ISOLATION_LEVEL = '1'
go
SET OPTION PUBLIC.OPTIMIZATION_GOAL = 'all-rows'
go
SET OPTION PUBLIC.TSQL_VARIABLES = 'ON'
go
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32507742
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASA процедуры не компилирует. Она их скорее интерпретирует во время запуска, а на этапе сохранения процедуры проверяется только синтаксис.

Поэтому непонятно, как она может "ругаться на одинаковые имена курсоров", если даже понятия не имеет, что они совпадает. Она может ругаться только на использование в кач-ве имени курсора зарезервированных слов
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32508249
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Badger
SELECT Convert (datetime, Convert (varchar(10), GetDate(), 101))
И где вы тут нашли неработающую вложенность? :) Не знаю какой формат соответсвует номеру 101 в ASE, в ASA 101 это 'mm/dd/yyyy' то есть это не универсальный формат. А конвертация из строки в дату при обнаружении неоднозначности mm/dd или dd/mm идет под управлением опции DATE_ORDER. По умолчанию DATE_ORDER установлен в YMD.
Кстати, это реальный код или придуманый на ходу? Если реальный, то мне очень любопытно нафига делать двойную конвертацию?

Badger
Я имел ввиду ситуацию, когда компилируешь все процедуры разом, например в ISQL. ASA не дает компилировать процедуру если аналогичное имя курсора было объявлено в другой процедуре выше по тексту. :( Не глобальный курсор! :)
...
DECLARE cursor_stock CURSOR FOR
.....
;
....
DECLARE cursor_stock CURSOR FOR
.....
;
Команда declare cursor ВСЕГДА идет в блоке begin-end. Причем для курсоров поддерживается область видимости точно так же как и для временных переменных.
Вот тебе пример из документации:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create procedure get_table_name(
  in id_value int, out tabname char( 128 )
)
begin
  declare qry long varchar;

  set qry = 'select table_name from SYS.SYSTABLE ' ||
            'where table_id=' || string(id_value);
  begin
    declare crsr cursor using qry;

    open crsr;
    fetch crsr into tabname;
    close crsr;
  end
end
Адрес страницы в документации:
ASA SQL Reference
SQL Statements
DECLARE CURSOR statement [ESQL] [SP]
открываем и читаем до полного просветления.


Итого мы имеем вполне тривиальный диагноз "не читал документацию" :)
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32508256
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mustliveASA процедуры не компилирует. Она их скорее интерпретирует во время запуска, а на этапе сохранения процедуры проверяется только синтаксис.

не совсем так... Там не только синтаксис проверяется. Не буду утверждать на все сто что там происходит (по причине что я не видел исходного кода ASA :)) но там по крайней мере еще и делается автоматическое дополнение кода процедуры параметром RESULT если он опущен. А это без компилирования не получится. Да и нелогично это - делать каждый раз при вызове интерпретацию. Скорее всего компилированый вариант процедуры все же где-то хранится, но пользователю не показывается. А то, что имена используемых таблиц/вьюшек/переменных на этапе загрузки процедуры не проверяются так это означает только то, что оно не делает полной линковки процедуры :)
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32508276
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласно моим научным изысканиям в ASA многопроходная компиляция процедур:
1. Осуществляется перевод скрипта в удобочитаемый для ASA скрипт (аналог функции REWRITE) и запись его в SysProcedure поле Proc_Defn. Далее именно по этому скрипту идет основная работа (например именного его видим в дебаггере и профайлере). На этом же этапе проверяются все синтаксические ошибки. Этот скрипт хоть и в SQL, но однотипно для ASA оформлен, гарантирован от синтаксических ошибок и готов к употреблению без лишних проверок семантики.
2. Сам исходный скрипт сохраняется в SysProcedure, поле Source (если включена опция PRESERVE_SOURCE_FORMAT)
3. После запуска сервера во время первого вызова процедуры происходит ее компиляция в байт-код, который оседает в кэше до следующего перезагруза сервера. Сейчас кстати в ASA 9.01.1841 есть забавный баг - если ХП в теле содержит только SELECT и имеет только IN параметры, то оптимизатор вместо ее выполнения при использовании ее в запросах обьединяет SELECT процедуры в план главного запроса (об этом я писал моей в рассылке № 10). Если в дальнейшем изменить SELECT в самой ХП, например убрать колонки, то при использовании ее в запросах получим ошибку обращения к несуществующим колонкам. Т.е. баг проявляется в том, что после ALTER PROCEDURE сервер не сбрасывает ее откомпилированный байт-код в кэше. Пока лечиться рестартом сервера, на праздники я об этой ошибке команде ASA заявлю.

Живут ли планы запросов из ХП все время до перезагрузки сервера или же динамически изменяются в зависимости от ситуации, точный ответ пока дать не могу, склоняюсь к мысли, что судя по всему планы запросов не храняться вместе с откомпилированной ХП (как например в MSSQL), а живут отдельной жизнью в кэше, отвечающем за планы запросов и дальше уже наравне с другими запросами по правилам эвристического анализатора ASA. В данном случае скорее всего при выполнении в ХП запроса ASA поступает так же, как и при выполнении запроса от клиента - ищет в кэше аналогичный и наиболее удачный план запроса и если находит его, то выполняет, иначе сначала компилирует.

Кстати насчет SET HIDDEN. Реально когда мы пишем ALTER PROCEDURE <Name> SET HIDDEN - ASA делает следующее:
1. Обнуляет в таблице SysProcedure поле Source
2. Кодирует поле Proc_Defn
Так что получается, что эта опция чуть чуть, но тормозит сервер, так как при компиляции процедуры после рестарта сервера ASA будет вынуждена еще декодировать Proc_Defn. И кстати чисто теоретически получается, что SET HIDDEN можно победить, раз ASA декодирует текст в исходное состояние для компиляции процедуры при первом обращении, но я бы этим заморачиваться особо не стал, думаю они кодируют по ASE и как то угадывать ключ не охота :) Хотя опять же чисто теоритически вполне возможен вариант, что ключ для всех БД один (или алгоритм получения ключа один), а значит команда ASA может вскрыть любые скрипты защищенных ХП и представлений.

Ну вот вроде все, что пока известно про процедуры. Найду что нибудь еще про процедуры, обязательно напишу.
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32508278
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В догонку о компилируемости. В главе ASA SQL Reference/SQL Statements/CREATE PROCEDURE statement [T-SQL] есть такой абзац:

If the Transact-SQL WITH RECOMPILE optional clause is supplied, it is ignored. Adaptive Server Anywhere always recompiles procedures the first time they are executed after a database is started, and stores the compiled procedure until the database is stopped.

Но что-то я сомневаюсь в его правдивости :) Либо использование процедуры внутри другой процедуры так же расценивается как поптыка запуска и инициирует перекомпиляцию.
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32508282
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSСейчас кстати в ASA 9.01.1841 есть забавный баг - если ХП в теле содержит только SELECT и имеет только IN параметры, то оптимизатор вместо ее выполнения при использовании ее в запросах обьединяет SELECT процедуры в план главного запроса (об этом я писал моей в рассылке № 10). Если в дальнейшем изменить SELECT в самой ХП, например убрать колонки, то при использовании ее в запросах получим ошибку обращения к несуществующим колонкам. Т.е. баг проявляется в том, что после ALTER PROCEDURE сервер не сбрасывает ее откомпилированный байт-код в кэше. Пока лечиться рестартом сервера, на праздники я об этой ошибке команде ASA заявлю.
Шо, опять??? Он уже вылезал в какой-то версии, не помню точно в какой. Даже на этом форуме когда-то поднимался этот вопрос. Сейчас проверил на 1751 - работает без проблем.
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32508549
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
И где вы тут нашли неработающую вложенность? :) 
SELECT Convert (datetime, Convert (varchar(10), GetDate(), 101))
Конечно это кусочек из WHERE запроса, для обнуления времени,
но он не работает и на ASA 8 и на ASA 9. если переименовать на 111
то Ok, что и пришось сделать.
а так 101 на ASA 8 пишет:

Interactive SQL
The following error occured while fetching result:
Ошибка ASA -157: Невозможно преобразовать 05/06/2004 в timestamp

На ASA 9 пишет:
Interactive SQL
The following error occured while fetching result:
Cannot convert 05/06/2004 to a timestamp
SQLCODE -157, ODBC 3 State = "07006"

Код: plaintext
Итого мы имеем вполне тривиальный диагноз "не читал документацию" :)
Согласен, только есть маленькое доп.условие. Я базу с ASE 12.5 на ASA 8 или 9
переношу, а в ASE 12.5 блоков BEGIN .... END для курсора можно и не ставить,
а их, - курсоров, по базе штук 200-250 уже написано, вот и подумаешь что
проще, курсоры переименовать или их в блоки вставить.

А вообще то после всего прочитанного просветление наступает намного быстрее :) и жизнь даже вроде налаживается.
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32509734
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Badge SELECT Convert (datetime, Convert (varchar(10), GetDate(), 101))
Конечно это кусочек из WHERE запроса, для обнуления времени,
Ну вообще-то такое можно делать и чуть проще. Например, в таблице есть поле LastAccess timestamp default timestamp и мы хотим посмотреть все записи с LastAccess за вчера:
select * from t1 where LastAccess>=dateadd(day, -1, today()) and LastAccess<today()
При сравнениях/присвоениях и тд значения типа data и datetime могут безболезненно неявно конвертироваться друг в друга.
И кстати номер два: datetime в ASA это всего лишь алиас для базового типа timestamp
...
Рейтинг: 0 / 0
Где взять Key для ASA Developer Edition 9
    #32568024
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Таже ситуация, ключа девелоперской ASA901 не дождался.
Если кто может, вышлете пожалуйста мне по почте.
Заранее спасибо.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Где взять Key для ASA Developer Edition 9
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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