Главная страница
    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.036 c
1-1102582831
Jiny
2004-12-09 12:00
2004.12.26
Создание конструктор форм как в 1С


4-1100525998
Рафик
2004-11-15 16:39
2004.12.26
Как можно спрятать свою программу


14-1102412396
Dmitriy O.
2004-12-07 12:39
2004.12.26
Кто знает какие либо методы быстрого сброса данных В Эксель ?


1-1102695692
Dema-X
2004-12-10 19:21
2004.12.26
из dynamic Child зделать nill


8-1096140394
hgd
2004-09-25 23:26
2004.12.26
Как быстрее всего вывести на Image Bitmap?





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