Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА / 10 сообщений из 10, страница 1 из 1
18.04.2006, 17:40
    #33674344
yourij_mw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
Здравствуйте!. Это как может и догадались вопрос о совместимости кода.
Есть некая куча процедур в АСЕ. Пока первая проблема на которую наткнулись при переносе етих самих процедр в АСА это как раз с этим ехес. переделать то их можно чтоб они заработали АSА, но тогда они не работают в ASE, а у нас процедуры пока частенько меняются и даже проблема не в том что их перписывать два раза нужно будет, а в том что при синхронизации старой и новой версии моделей баз даных, которую мы также пока ещё часто будем проделывать, мы используем Power Designer (9.5) (сначала процедуры выбираются в него, а затем в другие базы), а в нём то нету места для двоих версий скриптов, поэтому думаю вам мой вопрос будет понятен:
Можно ли написать ехес (@dsql) так чтобы в АСА он был бы понятным? Делаю так:
Код: plaintext
exec ('select...........update...')
ругается...
Код: plaintext
select @DSQL  exec (@DSQL)
..тоже не хочет.
Код: plaintext
select @DSQL = 'select...........update'  exec @DSQL
пропускает...
только exec @sql в АSE воспринимается как вызов процедуры имя которой записано в переменной @sql а не сам код.
...
Рейтинг: 0 / 0
18.04.2006, 18:04
    #33674434
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
1. сделать свою процедуру для совместимости и вызывать ее вместо exec(@sql)

Код: plaintext
exec my_sql_exec @sql

поддерживать для двух серверов надо будет только одну процедуру

2. не знаю но: попробовать сделать ф-ю или процедуру exec в ASA?
...
Рейтинг: 0 / 0
18.04.2006, 18:39
    #33674548
yourij_mw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
Спасибо. Про вариант 1 даже сам думал .. но просто думал что может быть и другой способ
...
Рейтинг: 0 / 0
18.04.2006, 19:18
    #33674632
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
ЭЭээ... сомневаюсь что у вас получится поддерживать и далее так код для двух СУБД.
...
Рейтинг: 0 / 0
24.04.2006, 10:40
    #33685516
@@valera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
Если надо поддерживать код для нескольких субд одновременно, есть проверенное, хотя и тяжеловатое решение - физическая модель в PowerDesigner
...
Рейтинг: 0 / 0
24.04.2006, 11:56
    #33685766
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
А как PowerDesignor поддерживает код (процедуры)? По-моему никак он его не поддерживает.
...
Рейтинг: 0 / 0
24.04.2006, 15:32
    #33686527
@@valera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
Код процедуры PD действительно не поддержтвает, но для нормальной генерации процедур из модели в несколько сходных диалектов sql достаточно добавить несколько extended attribute в соответствующие DBMS definition-ы. При генерации скриптов, макросы развернутся в нечто пригодное для нужного диалекта.
...
Рейтинг: 0 / 0
25.04.2006, 11:34
    #33688191
yourij_mw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
ктому в всему PоwerDesigner ест пробелы в процедурах непотом не посьом, Незнаю можно ли его научить по людски относится к человеческому труду, и чем это он, как и ASE DataEditor пользуется выбирая код процедур из syscomments, и честно говоря уже и знать больше нехочу, накарябаю процелуру для вставки пробелов в syscommets где пробелом закнчиваэтся предыдущая стока, для Check Constraint он вообще выбирает только одну строчку (первые 255 символов), как и Central впрочем? но тут уж я ничем себе не помогу.
...
Рейтинг: 0 / 0
25.04.2006, 11:59
    #33688319
yourij_mw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
Извиняюсь конечно за грамматические ошибки и расстановку слов в моих текстах....., PD вряд ли делает такое с моей клавиатурой, подозреваю что тут что-то другое...но что не могу понять до конца... :(
...
Рейтинг: 0 / 0
26.04.2006, 09:29
    #33690540
@@valera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА
PD 9.5 не самая новая версия, скорей всего в этом дело
В 11.1 я проблем с текстом процедур не наблюдаю, как при генерации, так и rev. engineering. Работаю с ASE/ASA/MSSQL, т.е. одна модель PD - 3 базы
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как exec (@sql) сделать в АSЕ чтоб неисправлять на exec @sql в АСА / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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