Главная страница
    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.033 c
4-1099941230
FLEA_ZNTU
2004-11-08 22:13
2004.12.26
История запусков приложения


3-1101969512
Ann
2004-12-02 09:38
2004.12.26
SQL запрос. Подскажите пожалуйста.


1-1102503043
mefisto
2004-12-08 13:50
2004.12.26
Как передать сообщение своей программе с коммандной строки?


10-1067872500
dmuv
2003-11-03 18:15
2004.12.26
idl2pas и ее встроенность в Delphi


14-1102182152
ArMellon
2004-12-04 20:42
2004.12.26
У меня стоит Apache , как виртуальным хостам





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский