Значения не вставлены в таблицу - Массовая вставка из CSV в MS-доступ - PullRequest
0 голосов
/ 28 февраля 2019

Я массово вставляю значения из CSV-файла в мою таблицу доступа.Все работало нормально, до сегодняшнего дня я сталкивался с этой проблемой, когда доступ вставляет все ожидаемые значения для одного поля с именем BN1.Он просто покидает этот столбец, когда данные не числовые.Это название партии продуктов, а в дизайне тип поля - memo (старый файл .mdb, поэтому его нельзя изменить).

Мои данные для примера:

DATE,TIME,PN1,BN1,CH0,CH1,CH2

2019-02-18,16:40:05,test,prompt,0,294,0

2019-02-18,16:40:14,test,1,700,294,0

Итак, в приведенном вышеданные, первая строка вставляется с пустым значением для подсказки, где как вторая строка вставлена ​​правильно с BN1 как 1.

Мой код для вставки данных:

INSERT INTO Log_143_temp ([DATE],[TIME],PN1,BN1,CH0,CH1,CH2
) SELECT [DATE],[TIME],PN1,BN1,CH0,CH1,CH2
 FROM [Text;FMT=Delimited;DATABASE=C:\tmp].[SAMPLE_1.csv]

Путь иимена файлов верны, иначе не было бы вставлено значение

1 Ответ

0 голосов
/ 01 марта 2019

Привет, вот как я решил проблему,

Изменил запрос на массовую вставку на

INSERT INTO Log_143_temp ([DATE],[TIME],PN1,BN1,CH0,CH1,CH2
) SELECT [DATE],[TIME],PN1,BN1,CH0,CH1,CH2
 FROM [Text;FMT=CSVDelimited;HDR=Yes;DATABASE=C:\tmp].[SAMPLE_1.csv]

Затем добавьте файл с именем schema.ini в папку, содержащую файл CSV.быть импортированным.

Содержимое файла schema.ini,

[SAMPLE_1.csv]
ColNameHeader=True
Format=CSVDelimited
DateTimeFormat=yyyy-mm-dd
Col1="DATE" Text
Col2="TIME" Text
Col3="PN1" Text
Col4="BN1" Text
Col5="CH0" Double
Col6="CH1" Double
Col7="CH2" Double

Теперь файлы CSV импортируются без проблем.

Для получения дополнительной информации о schema.iniперейдите по следующей ссылке,

https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...