Пытаюсь загрузить данные из DBF в MySQL. делаю многострочный insert:
- Код: Выделить всё
while not myDBF.EOF do
begin
id := myDBF.FieldByName('Id').AsInteger;
s_nazv :=AnsiToUtf8(myDBF.FieldByName('Name').AsString);
s_date := FormatDateTime('YYYY-MM-DD hh:mm:ss',
myDBF.FieldByName('date_add').AsDateTime);
buf := 'insert into sakila.order(nazv,id_product,date_add) '+
' VALUES('+''''+s_nazv+''''+','+IntToStr(id)+','+''''+s_date+''''+');';
mainForm.ZaprMySQL.SQL.Add(buf);
myDBF.Next;
RowCount := RowCount+1;
end;
MyDbf.Close;
mainForm.ZaprMySQL.ExecSQL;
В name в DBF - русские буквы. Если смотреть отладчиком, то s_nazv содержит нормальную строку с русскими буквами, а вот buf содержит что-то вроде
insert into sakila.order(nazv,id_product,date_add) VALUES('''#209#197#205''',12,''2013-01-01 04:03:01'')
Соответственно, при попытке mainForm.ZaprMySQL.ExecSQL происходит ругань мускула. Как сформировать строку с нормальными русскими буквами, а не кодами символов?
buf изначально был string, потом пробовал UTF8String - без разницы. В мускуле кодировка таблицы UTF8.
Заранее спасибо.