-
У меня есть база данных в microsoft access и программа с DBGridd и ADO. Я могу в ней редактировать(добалять поля, писать в них, удалять). Мне нужна помощь. Как сохранить в отдельный файл то что я наредактировал и как его потом открыть?
-
Не понятно, что значит "в отдельный файл".
Можете до начала редактирования программно создать копию Вашей базы (чтобы всегда была не измененная база).
Если в программе предусмотрено сохранение изменений (значений и структуры), то Ваша база и будет сохранена.
Если у Вас есть исходный текст программы, то в зависимости от потребностей подставляйте нужное имя базы.
-
Программа сохраняет изменения в базу которая используется, но надо что бы я мог сохранить в отдельный файл ( тоесть через savedialod я указываю путь куда она будет сохранена)
-
Если надо сохранить базу до начала изменений, то сделайте копию программно (например, через copyfile).
База банных имеет расширение mdb или accdb?
-
Нет, базу нудно сохранить после изменений. Расширение mbd.
-
Тоесть как вообще должно все выглядеть. Включаешь программу. Открываешь базу. Работаешь с ней. Потом сохраняешь ее куда-нибудь в расширении mbd.
-
Именно mbd расширение?
В Access нет такого. Есть mdb, например.
-
Ну, да mdb, ошибся. Кстати только что разобрался с открытием базы. Осталось только сохранение.
-
Как я открываю базу ( вдруг пригодится)
ADOConnection1.close; //делфи не хочет подлючаться к другой таблице пока включена старая
If opendialog1.Execute then
ADOConnection1.ConnectionString:= 'Data Source=' + opendialog1.FileName; //указываем путь к базе которую хотим открыть
ADOConnection1.Open; // запускаем подключение
ADOTable1.Active:=true; //после отключения ADOConnection таблицы отключаются автоматически. Нужно их включить.
Как то так
-
Что не получается с сохранением? Приведите исходный текст и текст ошибки.
-
ADOConnection1.close;старая
If opendialog1.Execute then
begin
ADOConnection1.ConnectionString:= 'Data Source=' + opendialog1.FileName;
ADOConnection1.Open;
ADOTable1.Active:=true;
//editing current database .....
if SaveDialog.Execute then
begin
ADOConnection1.Close;
CopyFile(opendialog1.FileName, savedialog1.fileName);
end;
end;
-
> Нет, базу нудно сохранить после изменений.
Так нельзя. Изменения вносятся в файл сразу же. Если нужно, чтоб для пользователя это выглядело так, как Вы описали - копируйте при открытии выбранный пользователем файл во временный, с ним работайте, а при сохранении - давайте ему заданное пользователем имя.