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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2006, 09:53   #1  
poul_and is offline
poul_and
Участник
 
56 / 12 (1) ++
Регистрация: 08.04.2003
Вопрос от чайника по работе с ODBC
Проблема такая - есть .dbf файл с полями id, Date и Value. Нужно перенести из этого файла в Навижн(версия 3.10) записи за последние 30 дней. Вроде как нужно использовать ODBC, но сам это никогда не делал. Набросайте плиз кратенький примерчик как это реализовать.
Старый 13.02.2006, 10:05   #2  
IGG is offline
IGG
Участник
 
665 / 29 (2) +++
Регистрация: 24.08.2005
Адрес: СПб/Москва
Я бы с ODBC не работал - много геморроя.
Самый простой пусть - засасываете в Excel, потом сохраняете его как MS-DOS CSV, а потом через датапорт закачиваете без проблем
А примеры в форуме где-то были. Мало того блок в навижне по пенсионному фонду вроде имеет код работы с dbf
Старый 14.02.2006, 10:13   #3  
poul_and is offline
poul_and
Участник
 
56 / 12 (1) ++
Регистрация: 08.04.2003
эту фигню надо автоматизировать - чтоб бабуля-оператор нажимала одну кнопку!
Старый 14.02.2006, 10:13   #4  
poul_and is offline
poul_and
Участник
 
56 / 12 (1) ++
Регистрация: 08.04.2003
блока по пенсионному фонду у нас нет
Старый 15.02.2006, 05:03   #5  
gennady is offline
gennady
Участник
 
92 / 11 (1) +
Регистрация: 27.09.2004
Адрес: Иркутск
Как я это сделал, правда, в версии 3.6. Посмотрите, может, подойдет.
// Connection = 'Microsoft ActiveX Data Objects 2.8 Library'.Connection
//Path = путь доступа к DBF файлу
IF NOT ISCLEAR(Connection) THEN
CLEAR(Connection);
CREATE(Connection);

ConnStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + Path + ';Extended Properties=DBASE IV;';
Connection.Open(ConnStr);

// RecSet = 'Microsoft ActiveX Data Objects 2.8 Library'.Recordset
//Field = 'Microsoft ActiveX Data Objects 2.8 Library'.Field
IF ISCLEAR(RecSet) THEN
CREATE(RecSet);

RecSet.Open('select * from ' + DBFfile + ' where INSTR(VALUE,"value") = 1',Connection);
RecSet.MoveFirst;
WHILE NOT RecSet.EOF DO BEGIN
NaviVal := FORMAT(RecSet.Fields.Item('VALUE').Value);
//…

RecSet.MoveNext;
END;

RecSet.Close;
Connection.Close;

//Эта фун-я применяется для тех импорируемых полей, которые могут содержать пустые значения
Result := '';
EVALUATE(Size, FORMAT(RecSet.Fields.Item(FieldName).ActualSize));
IF Size <> 0 THEN
Result := FORMAT(RecSet.Fields.Item(FieldName).Value);
EXIT(Result);
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопрос по ценам на товары shpon NAV: Функционал 4 17.11.2006 10:29
Внесение исправлений после оприходования товара - как? Вопрос юзера ;) Gerasim NAV: Функционал 14 03.11.2005 16:07
Простой вопрос. RemO NAV: Программирование 4 16.08.2005 23:39
C/FRONT C/ODBC Вождь NAV: Программирование 2 28.07.2003 15:57
Доступ через C/ODBC: Транзакции Incontrovertable NAV: Программирование 4 07.07.2003 16:40

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

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

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