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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2009, 15:21   #1  
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   #2  
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   #3  
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, время: 22:01.