Закройте ADO-соединение для доступа после завершения обновления и удалите файл MDB - PullRequest
0 голосов
/ 24 мая 2011

Я пытаюсь удалить файл mdb после прочтения.

Процесс:

copyFile(originMdb, to targetMdb);
mdbConnection.active := true;
mdbQuery.open;
readMdbFileData;
mdbQuery.close;
connection.close;
deleteFile(tagetMdb);

Но есть сгенерированный файл ldb, который не исчезнет.

обновление: Есть ли способ сказать mdb: «Мне больше не нужны соединения, закройте его и удалите блокировки в файле ldb» вместо этого механизм mdb ожидает завершения процесса, прежде чем освободит соединение, созданное с помощью adoConnection

update2: после создания простой программы, которая только что открыла и закрыла соединение, файл освобождается, однако, поскольку я держу adoqury, он отказывается выпустить файл.

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

вам нужно будет подождать, пока соединение закроется, и реактивный двигатель удалит файл ldb. файл ldb - это файл блокировки, созданный ядром базы данных Jet

1 голос
/ 25 мая 2011

вам нужно подождать, и это зависит от размера или вашей базы данных.но вы также можете удалить ldb напрямую, создав другую функцию.

, например:

Dim locationFLD As String
locationFLD = "yourLocation"
If Dir(locationFLD & "\*.ldb") <> "" Then
   deleteFile(tagetMdb) & ".ldb";
End If
...