Главная страница
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.024 c
14-1102576195
Dmitriy O.
2004-12-09 10:09
2004.12.26
Вот как борются у нас с Русским национализмом.


1-1102855757
Piter
2004-12-12 15:49
2004.12.26
Как у библиотеки задать версию и разработчика?


3-1101694710
Пыч
2004-11-29 05:18
2004.12.26
TDBGridEh


14-1102064193
080D:07BBh
2004-12-03 11:56
2004.12.26
DB components


9-1092958217
Shurik
2004-08-20 03:30
2004.12.26
Помогите с блиттингом DirectDraw