Обращение к линкед серверу через прямой директ скул из випа

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
Hershy
рег.отделение
Сообщения: 64
Зарегистрирован: Вт, 03/03/2009 07:53
Имя Фамилия: Николай Воронцов
Откуда: Галактика-Урал
Контактная информация:

Обращение к линкед серверу через прямой директ скул из випа

Сообщение Hershy »

Добрый день!

Сделал следующее

Код: Выделить всё

    var stmtG : longInt;
    stmtG := sqlAllocStmt;
    query := 'select * from kodos_remote...clitab';
    sqlPrepare(stmtG, query);
    sqlExecute(stmtG);
    if(sqlErrorCode(stmtG) = 0){
        Message('Ошибок нет');  
    }else{
        Message('Ошибка выполнения запроса ['+sqlErrorCode(stmtG)+']');
    }
    sqlFreeStmt(stmtG);
Получил при выполнении следующее

Код: Выделить всё

29.07.2010 12:25:02 [UTM_20091127#GALAKTIKA]:
select * from kodos_remote...clitab 

29.07.2010 12:25:02 [UTM_20091127#GALAKTIKA]:
Ошибка(1,27): Синтаксическая ошибка в SQL запросе "." 
29.07.2010 12:25:02 [UTM_20091127#GALAKTIKA]:
  HY010: [Microsoft][ODBC Driver Manager] Function sequence error
29.07.2010 12:25:02 [UTM_20091127#GALAKTIKA]:
  HY010: [Microsoft][ODBC Driver Manager] Function sequence error
Как не пытался ничего не выходит, всегда ошибка
При этом постоянно мессага вылетает, что ошибок нет
Может кто сказать, как проблему решить
Спасибо!
Аватара пользователя
larin
топ-софт
Сообщения: 228
Зарегистрирован: Пн, 10/09/2007 12:13
Имя Фамилия: Михаил Ларин
Откуда: ТопCофт
Контактная информация:

Re: Обращение к линкед серверу через прямой директ скул из випа

Сообщение larin »

А что вы имели ввиду когда написали три точечки в запросе?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Обращение к линкед серверу через прямой директ скул из випа

Сообщение cruger »

А почему это должно работать?
Max_Ural
партнер
Сообщения: 82
Зарегистрирован: Ср, 19/09/2007 08:35
Имя Фамилия: Максим Шагубаков
Откуда: Галактика-Урал
Контактная информация:

Re: Обращение к линкед серверу через прямой директ скул из випа

Сообщение Max_Ural »

При обращении из Query analyzer к Linked Server работают два варианта:
select * from OpenQuery(kodos_remote, 'select * from clitab');
select * from kodos_remote...clitab;

Ни тот, ни другой вариант через DirectSQL не работают
Как я понимаю, перед передачей на SQL происходит какая-то предобработка.
Есть ли способ передать команду серверу без дополнительной обработки?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Обращение к линкед серверу через прямой директ скул из випа

Сообщение cruger »

"Как я понимаю"???
А документацию почитать? Там же всё написано.
Max_Ural
партнер
Сообщения: 82
Зарегистрирован: Ср, 19/09/2007 08:35
Имя Фамилия: Максим Шагубаков
Откуда: Галактика-Урал
Контактная информация:

Re: Обращение к линкед серверу через прямой директ скул из випа

Сообщение Max_Ural »

По Вашему совету еще раз перечитал документацию в части прямого SQL.
К моему вопросу относится только следующий фрагмент:
Помимо вышеописанного способа Атлантис обеспечивает прямой доступ к SQL-серверам (DSQL). При этом текст запроса передается на SQL-сервер с минимальными изменениями:
- текст запроса приводится в соответствие с особенностями реализации SQL на данном сервере;
- учитываются настройки Protect-а, из SQL запроса отсекаются данные, доступ к которым запрещен.
Если бы это было так, то инструкции, которые работают без проблем в Query Analizer, должны также отрабатывать и через DirectSQL.
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Обращение к линкед серверу через прямой директ скул из випа

Сообщение cruger »

---
Операторы прямого доступа к SQL-серверам основаны на стандарте языка SQL/92. В Атлантис реализовано подмножество SQL/92, совместимое с поддерживаемыми SQL-серверами. Поскольку выбранные платформы достаточно прилично отличаются как по синтаксису, так и по функциональным возможностям, реализуемый синтаксис был максимально приближен к стандарту, а функциональное наполнение соответствует пересечению такового на поддерживаемых платформах.
---
Ответить