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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.04.2003, 13:07   #1  
Кактус is offline
Кактус
Участник
 
62 / 12 (1) ++
Регистрация: 11.02.2003
Post Navision Attain и DBF
Подскажите пожалуйста, могу ли я каким-нибудь образом из аттэйна работать напрямую с DBF-файлом? Необходима загрузка/выгрузка данных.
Старый 02.04.2003, 13:37   #2  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Да, такой механизм реализуем.
К примеру, чтение из dbf :
Во-первых, создаем источник данных ODBC - 'DBF'.
Затем в Navision объявляем переменные:

DBFBase Automation 'Microsoft ActiveX Data Objects 2.5 Library'.Connection
DBFFile Automation 'Microsoft ActiveX Data Objects 2.5 Library'.Recordset

Затем код:

CREATE(DBFBase);
CREATE(DBFFile);
DBFBase.Open('DBF');
DBFFile.Open('de_calls.dbf',DBFBase); // 'de_calls.dbf' - имя файла
IF NOT(DBFFile.EOF) THEN DBFFile.MoveFirst();
IF NOT(DBFFile.EOF) THEN BEGIN
REPEAT
Selected:=DBFFile.Fields().Item('ext_call').Value; //значение столбца 'ext_call'
DBFFile.MoveNext();
UNTIL DBFFile.EOF;
END;
DBFFile.Close();
DBFBase.Close();
CLEAR(DBFBase);
CLEAR(DBFFile);
Старый 02.04.2003, 17:02   #3  
Кактус is offline
Кактус
Участник
 
62 / 12 (1) ++
Регистрация: 11.02.2003
Talking
Огромное спасибо! Все заработало!
Старый 04.04.2003, 07:09   #4  
foxc is offline
foxc
Участник
 
3 / 10 (1) +
Регистрация: 04.04.2003
Адрес: Уссурийск
А как тогда создать таблицу и внести в нее данные не используя код вроде этого:
DBFBase.Execute('CREATE TABLE...
и
DBFBase.Execute('INSERT INTO...
у меня только так получилось.
Старый 26.06.2003, 11:03   #5  
Aleksander is offline
Aleksander
Участник
 
82 / 10 (1) +
Регистрация: 30.04.2003
Адрес: Уссурийск
?
Rungart - я попытался использовать Ваш пример, но столкнулся с проблемой.
При выполнении строчки:
DBFFile.Open('de_calls.dbf',DBFBase); // 'de_calls.dbf' - имя файла
- появляется следующее сообщение об ошибке:

Вызов функции Open неудачен. Microcost OLE DB Provider for ODBC Drivers вернул следующее сообщение:[Microsoft][Драйвер ODBC dBase] Ошибочная инструкция SQL; предполагалось 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' или 'UPDATE'.

В чем может быть проблема?
Старый 26.06.2003, 12:45   #6  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Скорее всего, проблема в следующем: когда создаешь источник данных DBF необходимо убрать галочку "Использовать текущий каталог" и при помощи кнопки "Выбор каталога..." указать директорию с dbf файлами.
Старый 27.06.2003, 09:25   #7  
Aleksander is offline
Aleksander
Участник
 
82 / 10 (1) +
Регистрация: 30.04.2003
Адрес: Уссурийск
Rungart - большое спасибо за подсказку! Но я столкнулся с еще одним интересным фактом, как оказалось, нельзя использовать файл с именем database.dbf, т.к. выражение DATABASE - зарезервированное. Или все же как-то можно и такое имя файла использовать?
Старый 16.07.2004, 16:18   #8  
Shakr
Гость
 
n/a
поднимая старую тему.

Задача - зацепить DBF-ник из 1c. с классификаторами банков.

Прописал к нему дорожку, как вы описали, открылся, считался.

Беда в русских названиях.
Получается полная чепуха.

Вот такая строчка из ДБФ-а: └╦╥└╔╤╩╚╔ ╩╨└╔
считывается вот так: LTTLãT¦Lã ¦¦Lã

по русски там написано: "АЛТАЙСКИЙ КРАЙ"

Попробовал поиграться с параметром Collating Sequence в драйвере ODBC - не помогло. Пробовал разные версии Automation - то же самое.

Кто знает, чем помочь?
Старый 20.07.2004, 10:04   #9  
AlexVB is offline
AlexVB
Участник
 
9 / 10 (1) +
Регистрация: 20.07.2004
В codeunit 12400 есть функция Dos2Win, можно написать обратную - Win2Dos
Старый 20.07.2004, 11:19   #10  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
PHP код:
Win2DOS(TextValue Text[1024]) : Text[1024]

FOR 
:= 1 TO STRLEN(TextValue) DO BEGIN
  ByteValue 
:= TextValue[i];
  IF 
ByteValue 185 THEN 
    ByteValue 
:= 252;
  IF 
ByteValue IN [192..239THEN 
    ByteValue 
-= 64
  IF 
ByteValue IN [240..255THEN 
    ByteValue 
-= 16;
  
TextValue[i] := ByteValue;
END;
EXIT(
TextValue); 
За это сообщение автора поблагодарили: Sancho (2).
Старый 20.07.2004, 12:10   #11  
AlexVB is offline
AlexVB
Участник
 
9 / 10 (1) +
Регистрация: 20.07.2004
+
168 -> 240
184 -> 241
Старый 07.10.2004, 17:52   #12  
Konstantin I is offline
Konstantin I
Участник
 
45 / 10 (1) +
Регистрация: 07.10.2004
При использвании данного примера, вылезла такая бяка:
"... Этот тип данных не поддерживается C\SIDE . Вы можете использовать данные любого из следующих типов : VT_VOID... и т.п."

Ругается на строковое поле из 4-х символов... Как бороться??? Что не нравиться???
Старый 04.11.2004, 11:43   #13  
ANekrasov is offline
ANekrasov
Участник
 
4 / 10 (1) +
Регистрация: 04.11.2004
У меня така ж беда, как бороться?
Старый 04.11.2004, 13:29   #14  
Polar is offline
Polar
Участник
Аватар для Polar
 
281 / 74 (3) ++++
Регистрация: 28.07.2003
Адрес: Ростов-на-Дону
__________________
Удачи!
Старый 04.11.2004, 13:33   #15  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Старый 04.11.2004, 14:42   #16  
Konstantin I is offline
Konstantin I
Участник
 
45 / 10 (1) +
Регистрация: 07.10.2004
Эта ошибка возникает если поле в дбфе пустое и нав тип определить не может, вышел с помощью этого:

FL := FS.Item('ind');
IF FL.ActualSize > 0 THEN ....
Старый 10.11.2004, 17:14   #17  
Polar is offline
Polar
Участник
Аватар для Polar
 
281 / 74 (3) ++++
Регистрация: 28.07.2003
Адрес: Ростов-на-Дону
столкнулся с проблемкой.

для чтения из DBF использую драйвер Microsoft Visual Fox Pro
все нормально пока не натыкаюсь на символы псевдографики
176 - 178 (может еще какие то , но пока эти)
драйвер их не понимает и возвращает 32 код (пробел).
DBF -ки старые еще под досом работающие.
как бы мне эти циферки получить вместо пробела?

может кто сталкивался с проблемой?

заранее благодарю.
__________________
Удачи!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Navision Attain + SQL Lokky NAV: Администрирование 3 11.08.2004 17:20
Запуск Navision Attain из командной строки Mary NAV: Администрирование 7 02.03.2004 16:31
Navision Attain через Citrix Alex_V NAV: Администрирование 2 15.12.2003 17:43
Переход на Navision Attain Makc_1 NAV: Прочие вопросы 3 30.07.2003 14:36
Переход к Navision Attain YuriG NAV: Прочие вопросы 0 12.07.2003 23:01
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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