Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c