Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1102691012
Игорь Евдокимов
2004-12-10 18:03
2004.12.26
как обратиться к динамически созданным TwebBrowser-ам


1-1102500083
Dmitrij_K
2004-12-08 13:01
2004.12.26
Скажите аналог сишной команды "^="


1-1102480657
Balkon
2004-12-08 07:37
2004.12.26
При локализации приложения с помощью Translation Manager...


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


14-1102260093
Супермэн
2004-12-05 18:21
2004.12.26
Двойная мораль или отсутствие какой-либо морали?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский