AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.11.2005, 17:00   #1  
111andrei is offline
111andrei
Участник
Самостоятельные клиенты AX
 
52 / 9 (1) +
Регистрация: 29.04.2004
Адрес: Москва
Доступ к VIEW SQL SERVER из Axapta
Добрый день

Не могу получить доступ к VIEW SQL SERVER из Axapta

Пишу


Statement st;

OdbcConnection Con;

ResultSet resultSet;

str ServerName;

str DatabaseName;

str User;

str Password;

str str_st;

str TableName;



LoginProperty LP = new LoginProperty();

;

ServerName =***;

DatabaseName =***;

User =***

Password =***;

TableName =***;

LP.setDatabase(DatabaseName);

LP.setServer(ServerName);

LP.setUsername(User);

LP.setPassword(Password);

Con = new OdbcConnection(LP);

// str_st ="select * from (" + TableName + ")";

str_st =TableName;

resultSet = st.executeQuery(str_st);

while (resultSet.next())

{ *****


, где TableName – имя VIEW в SQL SERVER.

Программа доходит до

while (resultSet.next())

и выдает ошибку

[Microsoft][ODBC SQL Server Driver][SQL Server]The request for procedure 'TpS_ItemTurnOverOnDateN' failed because 'TpS_ItemTurnOverOnDateN' is a view object.

Причем если в str_st пишешь запрос к таблицам SQL SERVER , то все работает.

В чем ошибка ?
Старый 30.11.2005, 17:18   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Укажите имя View без круглых скобок
str_st ="select * from " + TableName;
__________________
Axapta v.3.0 sp5 kr2
Старый 30.11.2005, 17:27   #3  
111andrei is offline
111andrei
Участник
Самостоятельные клиенты AX
 
52 / 9 (1) +
Регистрация: 29.04.2004
Адрес: Москва
Я уж и в круглых и в квадратных скобках пробывал и без них.
Та же самая ошибка
[Microsoft][ODBC SQL Server Driver][SQL Server]The request for procedure 'TpS_ItemTurnOverOnDateN' failed because 'TpS_ItemTurnOverOnDateN' is a view object.
Старый 30.11.2005, 17:33   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
View - это виртуальная таблица и правила ее использования такие-же как для обычных таблиц. Т.е. выборка осуществляется ч/з SELECT.
Надо заменить кусок кода

// str_st ="select * from (" + TableName + ")";
str_st =TableName;

на приведенный мной выше
__________________
Axapta v.3.0 sp5 kr2
Старый 30.11.2005, 17:36   #5  
111andrei is offline
111andrei
Участник
Самостоятельные клиенты AX
 
52 / 9 (1) +
Регистрация: 29.04.2004
Адрес: Москва
ВСЕ РАВНО. Та же ошибка
Старый 30.11.2005, 17:43   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Попробуйте свой запрос выполнить в Query Analyzer
__________________
Axapta v.3.0 sp5 kr2
Старый 30.11.2005, 17:50   #7  
111andrei is offline
111andrei
Участник
Самостоятельные клиенты AX
 
52 / 9 (1) +
Регистрация: 29.04.2004
Адрес: Москва
ВЫПОЛНЯЕТСЯ
Да, в примере, я не скопировал
st = con.createStatement();
после
Con = new OdbcConnection(LP);

Попробуйте повторить ситуацию, вот JOB
Statement st;
OdbcConnection Con;
ResultSet resultSet;
str ServerName;
str DatabaseName;
str User;
str Password;
str str_st;
str TableName;
LoginProperty LP = new LoginProperty();
;
ServerName ="***";
DatabaseName ="***";
User ="sa";
Password ="";
TableName ="select * from queryName";
//TableName = "BOMTABLE";
// TableName ="select * from BOMTABLE";
LP.setDatabase(DatabaseName);
LP.setServer(ServerName);
LP.setUsername(User);
LP.setPassword(Password);
Con = new OdbcConnection(LP);
st = con.createStatement();
str_st =TableName;
resultSet = st.executeQuery(str_st);
while (resultSet.next())
{
info("работает");
}
, где queryName - имя запроса
Старый 30.11.2005, 18:02   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
А что это такое
Цитата:
queryName - имя запроса
Имелось в виду имя просмотра? Вроде бы в начале было TpS_ItemTurnOverOnDateN
__________________
Axapta v.3.0 sp5 kr2
Старый 30.11.2005, 18:08   #9  
111andrei is offline
111andrei
Участник
Самостоятельные клиенты AX
 
52 / 9 (1) +
Регистрация: 29.04.2004
Адрес: Москва
да, имя запроса TpS_ItemTurnOverOnDateN, просто я назвал запрос queryName абстрактно
Старый 30.11.2005, 18:37   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вышеприведенный код выполняется нормально.

Кстати, обратите внимание, что в сообщении об ошибке так же указывается оператор SQL отправляемый на сервер.
__________________
Axapta v.3.0 sp5 kr2
Старый 30.11.2005, 19:20   #11  
111andrei is offline
111andrei
Участник
Самостоятельные клиенты AX
 
52 / 9 (1) +
Регистрация: 29.04.2004
Адрес: Москва
Нашел причину ошибки
при выполнении кода, встроенного в класс, выдавалась ошибка
[Microsoft][ODBC SQL Server Driver][SQL Server]The request for procedure 'TpS_ItemTurnOverOnDateN' failed because 'TpS_ItemTurnOverOnDateN' is a view object.
Когда делал тоже самое в job аксапта стала ругаться на неправильное представление даты в запросе. Убрал условие на дату в запросе - все заработало. Теперь понятно, где собака зарыта. С вашей помощью. Спасибо.
Старый 02.12.2005, 10:37   #12  
Кандидат is offline
Кандидат
начальный
 
69 / 6 (1) +
Регистрация: 19.09.2005
Адрес: Москва
Привет Всем!!!
Написал Job-ик для того что бы добраться к другой базе под SQL, например, Northwind и попробовать закачать из таблицы, например, Orders ,ну например, в таблицу уже в Axapte SalesTable.
Но пока не могу даже добраться до Northwind. Прошу помощи знающих людей.
static void SqlAccess(Args _args)
{
Statement st;
OdbcConnection Con;
ResultSet resultSet;
str ServerName;
str DatabaseName;
str User;
str Password;
str str_st; //str_st ="select * from " + TableName;
str TableName;
LoginProperty LP = new LoginProperty();
;
ServerName = "Local";
DatabaseName = "Northwind";
User = "sa";
Password ="";
//TableName = "Orders "; // ="select * from queryName";
// TableName ="select * from BOMTABLE";
LP.setDatabase(DatabaseName);
LP.setServer(ServerName);
LP.setUsername(User);
LP.setPassword(Password);
Con = new OdbcConnection(LP);
st = con.createStatement();
//str_st ="select * from " + TableName + "";
str_st ="select * from Orders ";
//str_st =TableName;
resultSet = st.executeQuery(str_st);
print resultSet;
pause;
//while (resultSet.next())
//{
////info("OK");
//}
}
Старый 02.12.2005, 11:08   #13  
Кандидат is offline
Кандидат
начальный
 
69 / 6 (1) +
Регистрация: 19.09.2005
Адрес: Москва
Кто нить подскажет? Или новую ветку заводить.
Старый 02.12.2005, 11:19   #14  
Кандидат is offline
Кандидат
начальный
 
69 / 6 (1) +
Регистрация: 19.09.2005
Адрес: Москва
Подожду, Апну и пойду зводить новую ветку
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
mazzy: Сравнительное тестирование производительности Microsoft Axapta v.3.0. CУБД Microsoft SQL Server 2005 и Microsoft SQL Server 2000 Blog bot DAX Blogs 0 28.10.2006 17:22
Fred Shen: Convert Axapta date type value to datetime type value in SQL Server Blog bot DAX Blogs 0 28.10.2006 16:40
aEremenko: Диагностика проблем при установке Microsoft Dynamics Ax 4.0 на Microsoft SQL Server 2005 Blog bot DAX Blogs 0 28.10.2006 16:01
Доступ к SQL Server из Axapta gershun DAX: Программирование 0 05.02.2002 17:51
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:30.