![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO+Access. Настройка на клиенте [D6]
msguns © (2004-11-23 17:40:00)Как на клиентском ПК настроить приложение на работу с БД с произвольном каталоге ? Т.е. на ПК, где разрабатывалось приложение, был добавлен System DSN, настроенный на конкретный mdb. При установке на ПК пользователя надо делать то же самое ?
А нельзя программно (типа через ini-файл с предварительно скорректированной строкой с пачем) создать этот источник или использовать уже имеющийся на компе юзера, задав ему нужный путь к файлу БД ?
В хэлпах по ADO и ODBC это очень туманно описано (типа все через ConnectionString, а как достучаться до самого источника данных - ни слова)
Заранее прошу прощение за ламерство и благодарю за помощь
msguns (2004-11-24 10:14:00) [1]Спасибо всем. Вчера в конце раб.дня разобрался.
Сделал так:
function TForm1.Open_DataBase: boolean;
var
CS: string;
begin
CS := '';
if adocAccess.Connected then adocAccess.Close;
CS := CS_Provider+'='+S_Provider+';'+CS_Security+'='+S_Security+';'+CS_Data_Source+'='+S_Data_Source;
if S_Mode>'' then CS := CS+';'+CS_Mode+'='+S_Mode;
if S_User_ID>'' then CS := CS+';'+CS_User_ID+'='+S_User_ID;
CS := CS+';'+CS_Initial_Catalog+'='+S_Initial_Catalog;
Edit2.Text := CS;
adocAccess.ConnectionString := CS;
adocAccess.Open;
adocAccess.GetTableNames(ComboBox1.Items,false);
ShowMessage('БД открыта');
end;
procedure TForm1.FormShow(Sender: TObject);
begin
sbtSelectDB.Enabled := true;
sbtConnect.Enabled := false;
sbtOpenTable.Enabled := false;
CS_Provider := 'Provider';
S_Provider := 'MSDASQL.1';
CS_Security := 'Persist Security Info';
S_Security := 'False';
CS_USER_ID := 'User ID';
S_USER_ID := '';
CS_Data_Source := 'Data Source';
S_Data_Source := 'База данных MS Access';
CS_Mode := 'Mode';
S_Mode := 'ReadWrite';
CS_Initial_Catalog := 'Initial Catalog';
S_Initial_Catalog := '';
end;
procedure TForm1.sbtSelectDBClick(Sender: TObject);
begin
if not OpenDialog1.Execute then exit;
Edit1.Text := OpenDialog1.FileName;
sbtConnect.Enabled := true;
S_Initial_Catalog := Edit1.Text;
end;
procedure TForm1.sbtConnectClick(Sender: TObject);
begin
Open_DataBase;
end;
sniknik (2004-11-23 21:17:00) [2]ini файл со строкой конекта в ado это udl. делаеш пустой файл.udl(сделай текстовый и переименуй) кликаеш на нем в проводнике (или запускаеш в общем как exe-шник) и настраивай. а сам файл укажеш в строке конекта.
настраивать лучше вообще без ODBC (устарел) а с другим любым OLEDB провайдером, и твой источник не нужен (стучать до него ;о)), может поэтому и ни слова про это не пишут? что не нужен он.
хотя создать его можно, и достаточно просто, в реестре прописать например (что можно посмотреть в настоенном), или через библиотеку одбс (есть обертки для odbc32.dll), или совсем просто создать файловый DSN и копировать его...
но зачем? прямой конект к OLEDB провайдеру гораздо проще его можно прямо на лету составить без всяких источников... ( http://www.delphimaster.ru/cgi-bin/forum.pl?n=1&search=Jet.OLEDB.4.0)
SergP (2004-11-23 21:17:00) [3]
> msguns © (23.11.04 17:40)
> Как на клиентском ПК настроить приложение на работу с БД
> с произвольном каталоге ?
Так ведь в строке подключения указывается путь где находится БД.
Сделай чтобы в проге можно было указать нужный путь, а затем вставляй его в строку подключения.
Или я неправильно понял чего ты хочешь?