Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос по create existing table / 10 сообщений из 10, страница 1 из 1
21.06.2006, 12:52
    #33805197
Михаил_Sybase
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
Есть необходимость использовать инструкцию create existing table с переменным значением пути к таблице.
Стандартная конструкция работает:
create existing table owner.tablename at 'server;path;;table'

а вот такая:

declare @pathvar char
set @pathvar = 'server;path;;table';
create existing table owner.tablename at @pathvar

ругается на @pathvar.
Есть ли способ заставить ее принимать переменную в качестве пути?
...
Рейтинг: 0 / 0
21.06.2006, 15:37
    #33806051
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
Такие вещи легко делаются через сборку запроса в строкву, с подстановкой уже самих значений с переменных и выполнения строки через динамический SQL.
--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
22.06.2006, 14:18
    #33808785
polexm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
Добрый день!
Не всегда удобны динамические запросы, особенно на этапе сопровождения готового программного продукта.

Я тоже столкнулся с проблемой:
к примеру, имеем запрос, который работает в MS SQL:

Код: plaintext
1.
2.
3.
4.
5.
declare @a int
set @a = :a
select q from X where c = @a
union
select q from Y where c = @a

в ASA 9.02 он не работает.

Как быть?

Спасибо!
...
Рейтинг: 0 / 0
22.06.2006, 14:46
    #33808893
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
polexm wrote:

> к примеру, имеем запрос, который работает в MS SQL:

....

> в ASA 9.02 он не работает.
>
> Как быть?

Вспомнить о том, что ASA - это не M$SQL.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
22.06.2006, 14:58
    #33808931
polexm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
Что именно нужно вспомнить?
Если возможно - подскажите, пожалуйста, как выйти из этой ситуации?
...
Рейтинг: 0 / 0
22.06.2006, 15:03
    #33808953
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
polexmДобрый день!
Не всегда удобны динамические запросы, особенно на этапе сопровождения готового программного продукта.

Я тоже столкнулся с проблемой:
к примеру, имеем запрос, который работает в MS SQL:

Код: plaintext
1.
2.
3.
4.
5.
declare @a int
set @a = :a
select q from X where c = @a
union
select q from Y where c = @a

в ASA 9.02 он не работает.

Как быть?

Спасибо!
Такие вещи лучше оформить в виде ХП и вызывать ее как EXEC Proc(@a = :a). Здесь самое удобное будет в том, что даже в случае, когда на ASA и MSSQL решение будет разным с точки зрения синтаксиса или производительности, просто нужно будет для каждого сервера написать свою версию ХП, а клиент будет просто ее вызывать, ничего не зная о различиях на серверах.
...
Рейтинг: 0 / 0
22.06.2006, 15:10
    #33808988
polexm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
Спасибо!

Это сделано, но есть ряд случаев, когда не хотелось бы использовать ХП и динамические запросы.

Каким образом нужно написать указанный выше запрос, чтобы при вызове его из клиентского приложения посредством TQuery, можно было передать значение параметра?

Спасибо!
...
Рейтинг: 0 / 0
22.06.2006, 15:17
    #33809018
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
если коннектится к аса через TDS (ASE client) то этот запрос должен работать.
...
Рейтинг: 0 / 0
22.06.2006, 15:20
    #33809028
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
polexmСпасибо!
Каким образом нужно написать указанный выше запрос, чтобы при вызове его из клиентского приложения посредством TQuery, можно было передать значение параметра?


Код: plaintext
1.
2.
select q from X where c = :x_c
union
select q from Y where c = :y_c
...
Рейтинг: 0 / 0
22.06.2006, 15:24
    #33809044
polexm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по create existing table
Спасибо!
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос по create existing table / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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