|
![]() |
#1 |
Участник
|
Перед выгрузкой данных в .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 |
|
![]() |
#2 |
Участник
|
Цитата:
Цитата:
И еще вопрос. почему когда я выбираю имя для экспорта в реквест форме, тип данных в диалоговом окне .txt? Каким образом тогда получаются файлы с расширением .dbf
Как нибудь, для примера выгрузите сначала фоб в txt, а пото без указания расширения выгрузите, просто поменяв тип данных. Эффект ОЧЕНЬ впечатляющий - файл предыдущий просто тупо замениться, хотя был изменен тип во время выгрузки.. |
|
![]() |
#3 |
Участник
|
Чуточку разобралась:
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] Только теперь при запуске вылезает ошибка: Цитата:
Операционная система не может найти устройство и каталог для файла .
Пожалуйста, проверьте, что названия устройства, каталога и имя файла корректны. |
|