|
12.07.2007, 17:59 | #1 |
Участник
|
Всем привет!
Кто-нибудь, поделитесь примером. Есть ли возможность программно создать таблицу dbf, а не использовать готовый шаблон для выгрузки данных из Навижна? |
|
12.07.2007, 21:37 | #2 |
Участник
|
Возможность есть
[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] |
|
24.07.2007, 09:16 | #3 |
Участник
|
Цитата:
Хотя реально файл пока укзанному месту лежит, что это может быть? |
|
24.07.2007, 12:03 | #4 |
Участник
|
А все нашел, извиняйте, мой косяк
|
|
13.07.2007, 11:13 | #5 |
Участник
|
Спасибо.
А можно указать куда положить созданный файл? |
|
13.07.2007, 11:17 | #6 |
Участник
|
Сорри, тормознул.
"путькфайлу" не заметил. |
|
17.07.2007, 17:11 | #7 |
Участник
|
Создавать dbf научился. Но наступил на вот эти грабли
http://forum.mazzy.ru/index.php?s=&sho...ost&p=32233 Скажите, это кто нить победил? Говорят ADOX умеет многое по этой теме, но примеров использования ADOX в Навижн не нашел. |
|
18.07.2007, 10:44 | #8 |
Участник
|
при Extended Properties=dBase 5.0 - точность после запятой устанавливается, но общая длина - стабильно 20,
например NUMERIC(8) сведется к (20,0) NUMERIC - к (20,0) NUMERIC(15,3) - к (20,3) |
|
18.07.2007, 11:35 | #9 |
Участник
|
А чем так вас не устраивает шаблон? С ним же проще?
Если уж так хочется, надо сменить провайдера: Я использовал здесь 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 | #10 |
Участник
|
Очень хочется не использовать шаблоны! Их может много понадобиться.
А VFPOLEDB можно инсталлировать не устанавливая FOX PRO? |
|
18.07.2007, 11:59 | #11 |
Участник
|
Можно. Но надо будет поставить на все машины где будет использоваться создание dbf.
|
|
18.07.2007, 12:43 | #12 |
Участник
|
Другого выхода я так понимаю нет.
что ж, спасибо за помощь. |
|
18.10.2007, 17:49 | #13 |
Участник
|
Всем привет!
Скажите, а можно ли сменить кодировку при выгрузке в dbf на DOS? |
|
18.10.2007, 18:34 | #14 |
Участник
|
Цитата:
1. Поменять кодировку написав функу на C/AL и перекодировать в навижене. 2. Использовать при выгрузке ODBC, где можно настраивать любую кодировку для алиаса. (Data Source=Alias а не путь) |
|
23.06.2009, 15:21 | #15 |
Участник
|
Перед выгрузкой данных в .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 |
Участник
|
Цитата:
Цитата:
И еще вопрос. почему когда я выбираю имя для экспорта в реквест форме, тип данных в диалоговом окне .txt? Каким образом тогда получаются файлы с расширением .dbf
Как нибудь, для примера выгрузите сначала фоб в txt, а пото без указания расширения выгрузите, просто поменяв тип данных. Эффект ОЧЕНЬ впечатляющий - файл предыдущий просто тупо замениться, хотя был изменен тип во время выгрузки.. |
|
23.06.2009, 17:15 | #17 |
Участник
|
Чуточку разобралась:
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] Только теперь при запуске вылезает ошибка: Цитата:
Операционная система не может найти устройство и каталог для файла .
Пожалуйста, проверьте, что названия устройства, каталога и имя файла корректны. |
|