|
|
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Прочитал на форуме от 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? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 10:00 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Гм, я у них качал Developer, зарегистрировался, в лицензии выбираю Европа, Средний Восток, Африка, ключик мне в течении дня прислали. Вполне возможно, что у них просто Ваш запрос посеялся - в связи с переводом сайта Sybase.com на их портал путаница сейчас там страшная и накладки случаются. Так как правилами sql.ru запрещено публиковать какие то не было ключи, даже и от бесплатных Developer Edition, я Вам вышлю ключик по почте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 10:11 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Спасибо, ключ подошел, и база с ASE12.5 на ASA 9 перенеслась. Даже все данные без ошибок. Будем юзать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 11:57 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Будет интересно услышать от Вас потом, насколько успешным оказался перенос БД с ASE на ASA и впечатления о кач-ве, скорости, устойчивости, затрат времени на переоптимизацию запросов и т.д. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 12:25 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Ну если честно, перенеслась то она перенеслась, но многие вещи работать перестали. 1. Первое впечатление, что ASE это все-таки более надежная база, корректно отрабатывающая более глубокую вложенность, хотя бы тех же хранимых процедур. У меня перестали работать многие процедуры, которые вызывали другие хранимые процедуры. Процедура без всякого кода шибки просто ничего не делает. :( Приходится переписывать без вложений, тогда все Ok. 2. Второй мелкий недостаток ASA при компиляции техже процедур, т.е. при создании хранимых процедур в ASA через ISQL, а их естественно не один десяток, нельзя в разных процедурах использовать одинаковые имена открываемых курсоров. Пришлось выписать имена всех курсоров и делать их уникальными, чтобы переносить процедуры одним скриптом. :( 3. Ну еще не поддержка в ASA % это вообще не считается, у меня всего 3-4 таких использования. Но одно единственное преимущество из за которого все три пункта выше я готов простить, которое есть в ASA и никогда не будет в ASE. Это то, что можно скопировать базу ASA как файл на другой компьютер, прописать ODBC и запустить. Сколько потребовалось на это времени, я потом напишу, если все исправлю. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2004, 17:41 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
К ASCRUS`у. Я извиняюсь, у меня аналогичная проблема - уже два дня жду ключика - может есть шанс и мне его на почту выслать. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2004, 18:49 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Badger 1. Первое впечатление, что ASE это все-таки более надежная база, корректно отрабатывающая более глубокую вложенность, хотя бы тех же хранимых процедур. У меня перестали работать многие процедуры, которые вызывали другие хранимые процедуры. Процедура без всякого кода шибки просто ничего не делает. :( Приходится переписывать без вложений, тогда все Ok. Скорее всего не правильно вызываешь процедуру. Можно пример "неработающей вложенности"? Badger2. Второй мелкий недостаток ASA при компиляции техже процедур, т.е. при создании хранимых процедур в ASA через ISQL, а их естественно не один десяток, нельзя в разных процедурах использовать одинаковые имена открываемых курсоров. Пришлось выписать имена всех курсоров и делать их уникальными, чтобы переносить процедуры одним скриптом. :( ээээ... что-то у вас там странное творится :) У меня довольно много процедур имеют одинаковые имена локальных курсоров. Никаких проблем не замечал. В общем вызов одной процедуры из другой чаще всего делается так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2004, 20:10 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
автор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 Теперь оператор % будет означать модульную операцию. авторНо одно единственное преимущество из за которого все три пункта выше я готов простить, которое есть в ASA и никогда не будет в ASE. Это то, что можно скопировать базу ASA как файл на другой компьютер, прописать ODBC и запустить. Сколько потребовалось на это времени, я потом напишу, если все исправлю. :) Это не веский довод переводить БД с ASE на ASA :) Вот если у Вас БД весит меньше 100 гигов, кол-во активных подключений не превышает 100 сессий, очень хочется получить расширенные возможности в SQL и OLAP, не планируются кластеры, продукт тиражный и должен стоять в различных местах, где не планируется использование труда сисадминов, то тогда ASA лучший выбор. А как архитектура сервера сделано, это не довод. Например, с одной стороны конечно приятно, что в ASA скопировал файл и все, вместе с настройками и грантами перенеслось, а с другой стороны все это в том же ASE или MSSQL не долго в SQL-скрипт загнать и автоматизировать перегонку БД на другой сервер. Зато у ASE и MSSQL можно под одним сервером одновременно много БД крутить, причем оптимизатор сможет строить гетерогенные запросы, а в ASA все это будет идти через RemoteServer и эффективность запросов, обращающихся одновременно к родной и присоединенной БД будет на порядки ниже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2004, 23:35 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Вдогонку - Stressman , письмо Вам послал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2004, 23:36 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Ух, сколько всего! Сразу и не ответишь :) Код: 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 Где это написано, очень, очень интересно!!! Код: plaintext Код: plaintext А где это, и как им пользоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 14:49 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 16:32 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
ASA процедуры не компилирует. Она их скорее интерпретирует во время запуска, а на этапе сохранения процедуры проверяется только синтаксис. Поэтому непонятно, как она может "ругаться на одинаковые имена курсоров", если даже понятия не имеет, что они совпадает. Она может ругаться только на использование в кач-ве имени курсора зарезервированных слов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 16:40 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
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. ASA SQL Reference SQL Statements DECLARE CURSOR statement [ESQL] [SP] открываем и читаем до полного просветления. Итого мы имеем вполне тривиальный диагноз "не читал документацию" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 23:53 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
mustliveASA процедуры не компилирует. Она их скорее интерпретирует во время запуска, а на этапе сохранения процедуры проверяется только синтаксис. не совсем так... Там не только синтаксис проверяется. Не буду утверждать на все сто что там происходит (по причине что я не видел исходного кода ASA :)) но там по крайней мере еще и делается автоматическое дополнение кода процедуры параметром RESULT если он опущен. А это без компилирования не получится. Да и нелогично это - делать каждый раз при вызове интерпретацию. Скорее всего компилированый вариант процедуры все же где-то хранится, но пользователю не показывается. А то, что имена используемых таблиц/вьюшек/переменных на этапе загрузки процедуры не проверяются так это означает только то, что оно не делает полной линковки процедуры :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 00:12 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Согласно моим научным изысканиям в 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 может вскрыть любые скрипты защищенных ХП и представлений. Ну вот вроде все, что пока известно про процедуры. Найду что нибудь еще про процедуры, обязательно напишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 00:53 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
В догонку о компилируемости. В главе 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. Но что-то я сомневаюсь в его правдивости :) Либо использование процедуры внутри другой процедуры так же расценивается как поптыка запуска и инициирует перекомпиляцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 00:58 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
ASCRUSСейчас кстати в ASA 9.01.1841 есть забавный баг - если ХП в теле содержит только SELECT и имеет только IN параметры, то оптимизатор вместо ее выполнения при использовании ее в запросах обьединяет SELECT процедуры в план главного запроса (об этом я писал моей в рассылке № 10). Если в дальнейшем изменить SELECT в самой ХП, например убрать колонки, то при использовании ее в запросах получим ошибку обращения к несуществующим колонкам. Т.е. баг проявляется в том, что после ALTER PROCEDURE сервер не сбрасывает ее откомпилированный байт-код в кэше. Пока лечиться рестартом сервера, на праздники я об этой ошибке команде ASA заявлю. Шо, опять??? Он уже вылезал в какой-то версии, не помню точно в какой. Даже на этом форуме когда-то поднимался этот вопрос. Сейчас проверил на 1751 - работает без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 01:15 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Конечно это кусочек из 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 блоков BEGIN .... END для курсора можно и не ставить, а их, - курсоров, по базе штук 200-250 уже написано, вот и подумаешь что проще, курсоры переименовать или их в блоки вставить. А вообще то после всего прочитанного просветление наступает намного быстрее :) и жизнь даже вроде налаживается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 10:25 |
|
||
|
Где взять Key для ASA Developer Edition 9
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 18:10 |
|
||
|
|

start [/forum/search_topic.php?author=%D0%9C%D0%B8%D1%80%D0%BE%D0%BD%D0%B5%D0%BD%D0%BA%D0%BE+%D0%92%D0%B0%D0%BB%D0%B5%D1%80%D0%B8%D0%B9&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
| others: | 18ms |
| total: | 198ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...