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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2002, 17:04   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Работа с Aссess'им файлом данных
Делаю так:

static void MyJob(Args _args)
{
OdbcConnection connection;
LoginProperty loginProperty = new LoginProperty();
Statement statement;
ResultSet resultSet;
str statementTxt = "select * from Table";
str resultFieldStr;
int resultFieldInt;
;

loginProperty.setDSN("TMr");
loginProperty.setDatabase("TMr");
loginProperty.setUsername("");
loginProperty.setPassword("");
connection = new OdbcConnection(loginProperty);
statement = connection.createStatement();
resultSet = statement.executeQuery(statementTxt);

while (resultSet.next())
{
resultFieldStr = resultSet.getString(1);
resultFieldInt = resultSet.getInt(2);
}
}

ТMr - это DSN. При запуске job' появляется сообщение об ошибке:

Невозможно выбрать запись в таблице "'(")'
Ошибка синтаксиса в предложении from.

Как я подразумеваю дело в следующих строчках:

loginProperty.setDSN("TMr");
loginProperty.setDatabase("TMr");

- что нужно подставлять в setDatabase - наименование файла tmr.mdb или имя DSN
- что должно быть в setDSN - имя источника данных (TMr) или имя драйвера (что-то впроде MSAcess. ...).

Кто-нибудь делал подобные вещи ? Может поможите примерчиком ?
Старый 01.11.2002, 19:03   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
У меня примерно такой же код нормально работает. Единственное, я не делаю setDatabase, setUsername, setPassword. Пароля у меня нет, а БД прописываю в свойствах ODBC DataSource. В setDSN() - имя DSN.
__________________
Андрей.
Старый 02.11.2002, 16:52   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Мда..

Изменил имя таблицы с Table, на нечто более нейтральное (а именно tbl) и все заработало.
Старый 15.11.2002, 09:41   #4  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
А можно ли работать с внешним файлом данных(в моем случае dbf) не создавая DSN. То есть, не используя следующую конструкцию:

PHP код:
loginProperty.setDSN("TMr"); 
Поясню задачу - у меня есть сетевой каталог, в котором есть под директории и в каждой поддериктории лежит файл data.dbf. Пользователь должен выбирать этот файл и вся дальнейшая работа должна происходить уже с ним.

Пробую делать вот так:

PHP код:
    filter = ['All files','*.*'];
    
filename Winapi::getOpenFileName(0,filter,''"@SYS53008"'','');

    
loginProperty.setDatabase(filename);
    
connection = new OdbcConnection(loginProperty); 
На последней строке выдаются следующие ошибки:

Работа с ODBC была прервана из за ошибки. Не удалось пройти авторизацию при подключении к базе данных.
[Microsoft][ODBC Driver Manager] DataSource Name Not Found and not default driver specified
Object 'Odbc connection' could not created.

Что-нибудь посоветуете ?
Старый 15.11.2002, 11:33   #5  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
setDSN() все равно нужен, хотя бы для того, чтобы система могла понять, какой драйвер ей использовать. А потом можно в setDatabase() указывать любой необходимый каталог / файл.
__________________
Андрей.
Старый 15.11.2002, 11:40   #6  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Спасибо. Действительно.
Старый 15.11.2002, 11:49   #7  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Нет. Поспешил.

Не смотря на указанный Database данные берет из того файла, на который указывает DSN, а не из выбранного пользователем.
Старый 15.11.2002, 12:33   #8  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Да, я тоже поторопился...
Действительно, все берет из настроек DSN`a, и не получается никак убедить его в обратном...
А setDatabase(), мне кажется, определяет только БД для SQL сервера.
__________________
Андрей.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Невозможно выполнить команду языка определения данных в () iHomer13 DAX: Программирование 8 18.07.2008 10:56
Стандартный импорт данных. Обновление sparur DAX: Функционал 0 24.03.2008 19:07
Работа с текстовым файлом Smith DAX: Программирование 4 21.10.2004 11:18
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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