powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Импорт текстового файла
7 сообщений из 7, страница 1 из 1
Импорт текстового файла
    #36890129
toly_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VFP-9, sp2.

Задача: из SQL Server через текстовый файл перенести данные в FoxPro 9.

1) Из MS SQL Server 2000 получил текстовый файл (приложен):
Код: plaintext
1.
2.
3.
declare @cmd 	varchar( 1000 )
set @cmd = 'bcp.exe "sf..f_tmp" out D:\sf\_out\f_tmp_2010-10-08.txt -w -Cacp -Usa -P1 -S' + @@servername
exec master..xp_cmdshell @cmd

2) В Фоксе создал таблицу:
Код: plaintext
1.
CREATE TABLE f_err(certificat c( 14 ), surname c( 25 ), date_born date, sex c( 1 ))

3) Пытаюсь залить данные из текстового файла:
Код: plaintext
1.
2.
BROWSE LAST
APPEND FROM "d:\sf\_out\f_tmp_2010-10-08.txt" DELIMITED WITH \n WITH TAB \t

... и получаю ошибку
Код: plaintext
1.
Command contains unrecognized phrase/keyword

в ключе DELIMITED пишу \n и \t потому-что в справке по SQL Server говорится, что когда выгружается с ключом -w столбцы разделяются символом табуляции \t и строки символом новой строки \n.

Help meee, plz.
...
Рейтинг: 0 / 0
Импорт текстового файла
    #36890148
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
toly_m,

Зачем так усложнять, разве нельзя дернуть select-ом и сразу в таблицу?
...
Рейтинг: 0 / 0
Импорт текстового файла
    #36890155
toly_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
через текстовый файл предпочтительно, т.к. записей много и файл (архивировав) можно передать по электронке.
...
Рейтинг: 0 / 0
Импорт текстового файла
    #36890225
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте из SQL выгрузить в формат CSV.
...
Рейтинг: 0 / 0
Импорт текстового файла
    #36890226
toly_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот файл выгружен так:
Код: plaintext
1.
2.
3.
4.
declare @cmd 	varchar( 1000 )
set @cmd = 'bcp.exe "sf..f_tmp" out D:\sf\_out\f_tmp_' + left(convert(varchar, getdate(),  120 ), 10 ) + '.txt -c -C1251 -Usa -P911 -S' + @@servername
print @cmd
exec master..xp_cmdshell @cmd
...
Рейтинг: 0 / 0
Импорт текстового файла
    #36890415
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы путаете delimiter и delimited, в Фоксе нельзя явно задать некоторые опции.
Я бы, действительно, сразу бы сделал Фоксом select из SQL, а затем сформировал выходной файл через COPY TO.
Если же вы желаете использовать BCP и импорт в Фокс, можно сделать так (именно указанные ключи):

Команда для SQL
Код: plaintext
bcp.exe "sf..f_tmp" out ... -t , -c -Cacp ...
Обратите внимание, что кодировка строк должна быть именно однобайтная

Команда для FoxPro
Код: plaintext
1.
2.
3.
old_format_date=SET("DATE")
SET DATE YMD
APPEND FROM "d:\sf\_out\f_tmp_2010-10-08.txt" DELIMITED
SET DATE (old_format_date)
А здесь мы просто импортируем в стандартном CSV-формате. Строки, хоть и не заключены в кавычки, воспримутся.
...
Рейтинг: 0 / 0
Импорт текстового файла
    #36894207
toly_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, действительно, правильнее кажется из VFP подключиться к SQL, сделать select...into... и уже с таблицы VPF выгружать в текстовый файл.

Это все получилось!
Спасибо всем!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Импорт текстового файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]