Делал исходя из написанного в документации, получилось так:
DELETE FROM table_name;
SET NAMES 'utf8';
SET CHARACTER SET utf8;
LOAD DATA INFILE 'c:/backups/file_from_bd.csv' INTO TABLE table_name FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\\n';
Сам запрос рабочий.
Но вот стоило его внедрить в Delphi, то всё, тут же стал выпадать в Syntax Error from MySQL
Скрин ошибки:
Код Delphi:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DELETE FROM table_name;');
ADOQuery1.SQL.Add('SET NAMES ''utf8'';');
ADOQuery1.SQL.Add('SET CHARACTER SET utf8;');
ADOQuery1.SQL.Add('LOAD DATA INFILE ''c:/backups/file_from_bd.csv'' INTO TABLE table_name FIELDS TERMINATED BY '';'' ENCLOSED BY ''"'' LINES TERMINATED BY ''\\n'';');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.Close;
Если я правильно понимаю, то "ноги" данной ошибки произрастают из-за использования драйвера "mysql connector odbc 5.2.7", который используется для соединением с СУБД mySQL?
Или как решается данный вопрос?
И решается ли он, не прибегая к консольному методу загрузки данных в БД?
Доброго времени суток. В свое время были проблемы в использованием кирилицы при работе с MySql Embedded. Сработал вот такой запрос.
ADOConnection.ExecSQL('SET NAMES cp1251;');
Может быть вам не нужно utf8 обрамлять апострофами?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно с DB mysql получить значение типа enumКаким методом resultSet
ЗдравствуйтеЯ собираю свою сборку MC , и мне нужно было внести изменения в мод для баланса