1) Если надо заливать много записей в SQLite из Delphi кода, то надо использовать prepared
INSERT запрос и обрамить все в транзакцию:
Connection.StartTransaction;
try
Query.SQL.Text := 'INSERT INTO tab VALUES (:p1, ..., :pN)';
for i := 1 to 10000 do begin
Query.Params[0].AsXxx := ...;
.....
Query.Params[N-1].AsXxx := ...;
Query.ExecSQL;
end;
Connection.Commit;
except
Connection.Rollback;
raise;
end;
2) Если ты одни работаешь с БД, то неплохо выставить и некоторые прагмы - существенно
ускорит заливку в БД.
3) ';' - это разделитель команд в SQLite батчах. Судя по всему UniDAC не поддерживает
SQLite батчи, потому и ничего не вставляется. Другие библиотеки с более качественной
реализацией поддержки SQLite поддерживают его батчи. Дело в том что там в API есть
небольшая ловкость которую надо использовать чтобы поддерживать эти батчи :)