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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.07.2007, 17:59   #1  
TAM is offline
TAM
Участник
 
30 / 10 (1) +
Регистрация: 15.06.2007
Всем привет!

Кто-нибудь, поделитесь примером.
Есть ли возможность программно создать таблицу dbf, а не использовать готовый шаблон для выгрузки данных из Навижна?
Старый 12.07.2007, 21:37   #2  
andrevk is offline
andrevk
Участник
 
145 / 10 (1) +
Регистрация: 23.11.2006
Возможность есть


[codebox]dbf Automation 'Microsoft ActiveX Data Objects 2.8 Library'.Connection

create(dbf);
dbf.Open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=путькфайлу;Extended Properties=DBASE IV;');
DBF.Execute('Create Table Tables (Code char(20), Name char(30))');
DBF.Close;[/codebox]
Старый 13.07.2007, 11:13   #3  
TAM is offline
TAM
Участник
 
30 / 10 (1) +
Регистрация: 15.06.2007
Спасибо.
А можно указать куда положить созданный файл?
Старый 13.07.2007, 11:17   #4  
TAM is offline
TAM
Участник
 
30 / 10 (1) +
Регистрация: 15.06.2007
Сорри, тормознул.
"путькфайлу" не заметил.
Старый 17.07.2007, 17:11   #5  
TAM is offline
TAM
Участник
 
30 / 10 (1) +
Регистрация: 15.06.2007
Создавать dbf научился. Но наступил на вот эти грабли
http://forum.mazzy.ru/index.php?s=&sho...ost&p=32233
Скажите, это кто нить победил?

Говорят ADOX умеет многое по этой теме, но примеров использования ADOX в Навижн не нашел.
Старый 18.07.2007, 10:44   #6  
TAM is offline
TAM
Участник
 
30 / 10 (1) +
Регистрация: 15.06.2007
при Extended Properties=dBase 5.0 - точность после запятой устанавливается, но общая длина - стабильно 20,
например NUMERIC(8) сведется к (20,0)
NUMERIC - к (20,0)
NUMERIC(15,3) - к (20,3)

Старый 18.07.2007, 11:35   #7  
andrevk is offline
andrevk
Участник
 
145 / 10 (1) +
Регистрация: 23.11.2006
А чем так вас не устраивает шаблон? С ним же проще?

Если уж так хочется, надо сменить провайдера:
Я использовал здесь Microsoft FoxPro VFP Driver

[codebox]dbf Automation 'Microsoft ActiveX Data Objects 2.8 Library'.Connection

CREATE(dbf);
dbf.Open('Provider=VFPOLEDB;Data Source=пустькфайлу');
dbf.Execute('Create Table Tables (Code char(20), Name char(30), Num NUMERIC(10,3))');
dbf.Close;[/codebox]
Старый 18.07.2007, 11:50   #8  
TAM is offline
TAM
Участник
 
30 / 10 (1) +
Регистрация: 15.06.2007
Очень хочется не использовать шаблоны! Их может много понадобиться.

А VFPOLEDB можно инсталлировать не устанавливая FOX PRO?
Старый 18.07.2007, 11:59   #9  
andrevk is offline
andrevk
Участник
 
145 / 10 (1) +
Регистрация: 23.11.2006
Можно. Но надо будет поставить на все машины где будет использоваться создание dbf.
Старый 18.07.2007, 12:43   #10  
TAM is offline
TAM
Участник
 
30 / 10 (1) +
Регистрация: 15.06.2007
Другого выхода я так понимаю нет.
что ж, спасибо за помощь.
Старый 24.07.2007, 09:16   #11  
Smart is offline
Smart
Участник
 
51 / 13 (1) ++
Регистрация: 09.06.2005
Цитата:
Сообщение от Andreblack Посмотреть сообщение
dbf.Open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=путькфайлу;Extended Properties=DBASE IV;');
Доброго времени суток, а подскажите плиз, я пытаюсь открыть готовый файл .dbf, но мне ругается типа "вызов Open неудачен, строка типа 'путькфайлу' задает ошибочный путь... Проверьте путь и подключение к среверу"
Хотя реально файл пока укзанному месту лежит, что это может быть?
Старый 24.07.2007, 12:03   #12  
Smart is offline
Smart
Участник
 
51 / 13 (1) ++
Регистрация: 09.06.2005
А все нашел, извиняйте, мой косяк
Старый 18.10.2007, 17:49   #13  
TAM is offline
TAM
Участник
 
30 / 10 (1) +
Регистрация: 15.06.2007
Всем привет!
Скажите, а можно ли сменить кодировку при выгрузке в dbf на DOS?
Старый 18.10.2007, 18:34   #14  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Цитата:
Сообщение от TAM Посмотреть сообщение
Всем привет!
Скажите, а можно ли сменить кодировку при выгрузке в dbf на DOS?
Есть 2 варианта:
1. Поменять кодировку написав функу на C/AL и перекодировать в навижене.
2. Использовать при выгрузке ODBC, где можно настраивать любую кодировку для алиаса. (Data Source=Alias а не путь)
Старый 23.06.2009, 15:21   #15  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
Перед выгрузкой данных в .dbf пытаюсь программно создать таблицу dbf, но что-то ничего не получается. Испробовала разные варианты. На данном варианте валится на CREATE TABLE(ошибка синтаксиса инструкции CREATE TABLE)
[codebox]
CREATE(dbf);
dbf.Open('DRIVER=Microsoft dBASE Driver (*.dbf);DRIVERID=277;ReadOnly=0;DBQ='+FilePath);
dbf.Execute('CREATE TABLE' + FileName + '(' + 'Code' + '' + 'VARCHAR(6)' + ',' + 'Name' + '' + 'TEXT(16)'+ ')');
dbf.Close;[/codebox]

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

И еще вопрос. почему когда я выбираю имя для экспорта в реквест форме, тип данных в диалоговом окне .txt? Каким образом тогда получаются файлы с расширением .dbf
Старый 23.06.2009, 16:45   #16  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от Lrundom Посмотреть сообщение
dbf.Execute('CREATE TABLE' + FileName + '(' + 'Code' + '' + 'VARCHAR(6)' + ',' + 'Name' + '' + 'TEXT(16)'+ ')');
А попробуйте поиграться с переменной, которая идёт в параметрах ()

Цитата:
И еще вопрос. почему когда я выбираю имя для экспорта в реквест форме, тип данных в диалоговом окне .txt? Каким образом тогда получаются файлы с расширением .dbf
Нав работает в основном в txt, а расширение система добавляет потом.
Как нибудь, для примера выгрузите сначала фоб в txt, а пото без указания расширения выгрузите, просто поменяв тип данных.
Эффект ОЧЕНЬ впечатляющий - файл предыдущий просто тупо замениться, хотя был изменен тип во время выгрузки..
Старый 23.06.2009, 17:15   #17  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
Чуточку разобралась:
1)CREATE TABLE ругался на апострофы. Нашла выход с помощью текстовой переменной.
2)если оставить реквест форму, то при выполнение датапорта создаётся 2 файла : текстовый и дбф. Решение - реквест форму в No, путь к файлу задавать жестко.

[codebox]
VAR
Name ConstValue
Text001 CREATE TABLE %1(%2 CHAR(10), %3 VARCHAR(60))

CODE

NameTable := 'Vendor';
FilePath:='D:\TEMP\';

CREATE(dbf);
dbf.Open('DRIVER=Microsoft dBase Driver (*.dbf);DRIVERID=277;DBQ=' + FilePath);
dbf.Execute(STRSUBSTNO(Text001,NameTable,'FIELD1','FIELD2'));
dbf.Close;[/codebox]

Только теперь при запуске вылезает ошибка:
Цитата:
Операционная система не может найти устройство и каталог для файла .
Пожалуйста, проверьте, что названия устройства, каталога и имя файла корректны.
Но при этом dbf создается.
 


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

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

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