Столкнулся с проблемой при работе с MS Access (mdb).
Например, есть такой код:
- Код: Выделить всё
with DBForm.AccessSQLQuery do
begin
Close;
SQL.Clear;
SQL.Add(UTF8ToWinCP('SELECT TestField FROM TestTable WHERE TestField = ''Тест'''));
Open;
Close;
SQL.Clear;
SQL.Add(UTF8ToWinCP('INSERT INTO TestTable (TestField) VALUES (''Тест'')'));
ExecSQL;
end;
Запрос SELECT работает и показывает ровно столько записей, сколько их есть со значением 'Тест' в поле TestField. Но вот INSERT не работает, хоть убей. То есть в БД запись не добавляется, но счётчик автоинкремента считает, что запись была добавлена. То есть, если счётчик последней записи в TestTable 5, то следующая запись добавляется (с помощью самого Access) со счётчиком 7 или больше (в зависимости, сколько раз я пытался выполнить из программы INSERT). Как быть, ума не приложу? Кто-нибудь, подскажите, пожалуйста.