Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2009, 16:33   #1
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию Изменить файл баззы данных

Как сделать возможность менять базу данных Access прям в программе?
Соединяюсь при помощи ADO.

Только не говорите, что нужно полностью изменить ConnectionString

Есть другой вариант?
SlavaSH вне форума Ответить с цитированием
Старый 24.06.2009, 16:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
менять базу данных Access прям в программе?
Что значит менять?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.06.2009, 16:52   #3
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Может так:
Код:
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 DataModule1.ADOConnection1.Close;
 if EditConnectionString(DataModule1.ADOConnection1) then 
 begin 
  DataModule1.ADOConnection1.Connected:=true; 
  DataModule1.ADOTable1.Active:=true; 
 end; 
end;
Подключите в uses модуль ADOConEd.
Здесь появляется такое-же окно, как и при создании ConnectionString в делфи.
Код взят из книги Библия программиста
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 25.06.2009, 07:12   #4
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Может так?
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
  ADOConnection1.Connected:=False;
  ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog1.FileName+'Persist Security Info=False'
  ADOConnection1.Connected:=True;
end;
end;
S@fer вне форума Ответить с цитированием
Старый 25.06.2009, 09:21   #5
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Neeter Посмотреть сообщение
Может так:
Код:
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 DataModule1.ADOConnection1.Close;
 if EditConnectionString(DataModule1.ADOConnection1) then 
 begin 
  DataModule1.ADOConnection1.Connected:=true; 
  DataModule1.ADOTable1.Active:=true; 
 end; 
end;
Подключите в uses модуль ADOConEd.
Здесь появляется такое-же окно, как и при создании ConnectionString в делфи.
Код взят из книги Библия программиста
что-то я не догоняю... а где здесь изменился файл базы данных?

мне нужно сделать так, чтобы пользователь смог изменить расположение базы данных на диске.
SlavaSH вне форума Ответить с цитированием
Старый 25.06.2009, 09:24   #6
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от S@fer Посмотреть сообщение
Может так?
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
  ADOConnection1.Connected:=False;
  ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog1.FileName+'Persist Security Info=False'
  ADOConnection1.Connected:=True;
end;
end;
что-то у вас слишком простая строка...
у меня вот такая она:
Provider=Microsoft.Jet.OLEDB.4.0;Us er ID=Admin;Data Source=C:\Base.mdb;Mode=Share Deny None;Extended Properties="";Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False

и присваивать ее при смене базы как-то фигово, как мне кажется... что другого пути нет?
SlavaSH вне форума Ответить с цитированием
Старый 25.06.2009, 09:26   #7
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
что-то у вас слишком простая строка
ну так Вы сначала проверьте, для подключения к бд Access хватает этой строчки.
S@fer вне форума Ответить с цитированием
Старый 25.06.2009, 09:27   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как мне кажется
Ниче такого страшного в ней нет. Присваивай и не бойся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2009, 10:17   #9
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от S@fer Посмотреть сообщение
ну так Вы сначала проверьте, для подключения к бд Access хватает этой строчки.
а я и проверил :-) и все работает)))

спасибо большое!
SlavaSH вне форума Ответить с цитированием
Старый 25.06.2009, 14:19   #10
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Цитата:
что-то я не догоняю... а где здесь изменился файл базы данных?
Хех, а вы попробовали?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP. Как изменить значение записи в MySQL базе данных SeRhy PHP 4 18.06.2009 12:21
Как изменить файл, находящийся на ftp tigr1991 Работа с сетью в Delphi 5 14.01.2008 17:02
Не могу изменить DBF файл Wanderer БД в Delphi 3 31.05.2007 20:23
Можно ли вообще изменить exe-файл, если да то как? Скуби-ду Общие вопросы Delphi 6 10.04.2007 07:56
как сделать изменения в самом себе? файл должен изменить сам себя. Alar Общие вопросы Delphi 0 29.10.2006 18:51