Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

ADO+Access. Настройка на клиенте   Найти похожие ветки 

 
msguns ©   (2004-11-23 17:40) [0]

Как на клиентском ПК настроить приложение на работу с БД с произвольном каталоге ? Т.е. на ПК, где разрабатывалось приложение, был добавлен System DSN, настроенный на конкретный mdb. При установке на ПК пользователя надо делать то же самое ?
А нельзя программно (типа через ini-файл с предварительно скорректированной строкой с пачем) создать этот источник или использовать уже имеющийся на компе юзера, задав ему нужный путь к файлу БД ?
В хэлпах по ADO и ODBC это очень туманно описано (типа все через ConnectionString, а как достучаться до самого источника данных - ни слова)

Заранее прошу прощение за ламерство и благодарю за помощь


 
sniknik ©   (2004-11-23 21:17) [1]

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) [2]


>  msguns ©   (23.11.04 17:40)
> Как на клиентском ПК настроить приложение на работу с БД
> с произвольном каталоге ?


Так ведь в строке подключения указывается путь где находится БД.
Сделай чтобы в проге можно было указать нужный путь, а затем вставляй его в строку подключения.
Или я неправильно понял чего ты хочешь?


 
msguns ©   (2004-11-24 10:14) [3]

Спасибо всем. Вчера в конце раб.дня разобрался.
Сделал так:

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;



Страницы: 1 вся ветка

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
1-1102558266
Rat
2004-12-09 05:11
2004.12.26
Showmessage прячется


14-1102364424
Cheater
2004-12-06 23:20
2004.12.26
Вопросы по экзаменам.


1-1102499930
Zloy
2004-12-08 12:58
2004.12.26
StringGrid событие, которое происходит после редактировния ячейки


14-1102307446
Урфин Джюс
2004-12-06 07:30
2004.12.26
Do not localize


14-1102056262
Leha
2004-12-03 09:44
2004.12.26
Копирование таблеток