Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Путь к БД ADOConnection   Найти похожие ветки 

 
Andrewtitoff ©   (2012-02-20 10:27) [0]

Подскажите пожалуйста, у меня WIN 7x64 + RAD Studio XE
Подключаюсь к БД через ADOConnection, когда указываю прямой путь т.е. "C:\Users\Andrew\Desktop\ELECTRICAL-TEST\MY_PROG\NEW.mdb" - то естественно все нормально но само собой только на моем компьютере, а когда я пишу просто "NEW.mdb" (естественно файл лежит в каталоге с программой) - то пишет невозможно найти файл в "C:\Windows\System32"..., как мне сделать что бы он искал в текущем каталоге?


 
Ega23 ©   (2012-02-20 10:30) [1]

ExtractFilePath(ParamStr(0)) + "ttt.mdb"


 
andrewtitoff ©   (2012-02-20 11:15) [2]


> ExtractFilePath(ParamStr(0)) + "ttt.mdb"

Так это понятно, а как мне это в ADOConnection запихнуть, при чем мне надо что бы всё автоматически при запуске подключалось, а так и в ADOConnection подключение в false выставляется и в ADOTable.active..., а у меня их еще и к тому же несколько...


 
Ega23 ©   (2012-02-20 11:19) [3]


> Так это понятно, а как мне это в ADOConnection запихнуть,


http://www.connectionstrings.com/


 
andrewtitoff ©   (2012-02-20 12:00) [4]

Ну это все понятно, а нельзя просто в среде как то пути прописать где искать по умолчанию?, что бы искал в текущем каталоге а не в системном...


 
Ega23 ©   (2012-02-20 12:08) [5]


> что бы искал в текущем каталоге а не в системном...


http://docwiki.embarcadero.com/VCL/en/SysUtils.GetCurrentDir


 
andrewtitoff ©   (2012-02-20 12:47) [6]


> http://docwiki.embarcadero.com/VCL/en/SysUtils.GetCurrentDir
>
>

Простите конечно, но я не пойму, мы с вами на одном языке общаемся?... =)))


 
Ega23 ©   (2012-02-20 12:53) [7]


> Простите конечно, но я не пойму, мы с вами на одном языке
> общаемся?


Я тебе ответил на три твоих вопроса:
1. Как найти каталог, где лежит запускаемый файл
2. Что нужно прописать в ConnectionString
3. Как найти текущую директорию.

Ты использовал свои 3 желания, джинн улетел. :)


 
sniknik ©   (2012-02-20 13:15) [8]

andrewtitoff ©   (20.02.12 11:15) [2]
> Так это понятно
andrewtitoff ©   (20.02.12 12:00) [4]
> Ну это все понятно
чего тогда так много вопросов если все понятно?

> а нельзя просто в среде как то пути прописать где искать по умолчанию?
в ODBC DSN например можно, а использовать уже его. но не думаю, что это будет проще/лучше чем Ega23 ©   (20.02.12 10:30) [1]


 
MsGuns ©   (2012-02-20 13:16) [9]

"По умолчанию" обычно подразумевают папку с программой. Как определить эту папку (папку откуда было запущено приложение, а не текущую папку Windows), - совет джина №1
Как подставить эту папку + имя файла базы - подсказка джина №2. Ну и надо немного мозг поэксплуатировать (совсем чуть-чуть) чтобы всунуть в нужное место полное имя файла
Откуда брать имя и папку с базой в случае произволного местоположения джинн не сказал потому что не был вопрос такой поставлен. А если бы был, то скорее всего джин порекомендовал бы посмотреть на TIniFile или на реестр винды.

А вообще джины не любят несообразительных и ленивых :)


 
sniknik ©   (2012-02-20 13:20) [10]

> "По умолчанию" обычно подразумевают папку с программой.
текущую папку вообще то, а "с программой" ее делает указание папки программы (рабочей) в ярлыке.


 
MsGuns ©   (2012-02-20 13:25) [11]

Вообще-то да, конечно.
Но если ярлык создавался самим юзером, то по умолчанию (вроде как в 98-й и более ранней винде, точно не помню) в папку ничего не вписывается и соответственно при запуске текущим "назначался" System32 или какой нибудь "Мои документы".
В итоге "Почему пррограмма вылетает ?"


 
Ega23 ©   (2012-02-20 13:36) [12]


> Откуда брать имя и папку с базой в случае произволного местоположения
> джинн не сказал потому что не был вопрос такой поставлен.


Вопрос был поставлен: "что бы искал в текущем каталоге а не в системном"

"Текущий каталог приложения" - это CurrentDir. И оно не совсем тот каталог, из которого запускается приложение.
Тупой пример (который меня просто дико напрягает). Есть IBExpert. В нём открыт некий скрипт на создание БД. Скрипт правится другим редактором, но иногда выполняется из среды IBE. Есть база, которая время от времени восстанавливается заново и на неё патч-скрипт накатывается. Файл с бэкапом БД лежит D:\ ....., файл со скриптом - s:\ .....
И CurrentDir меняется всё время... Нервирует.


 
andrewtitoff ©   (2012-02-20 13:38) [13]


> Я тебе ответил на три твоих вопроса:

Так я и не задавал этих вопросов... =))))

Это я и сам могу написать, но я не хочу каждый раз при написании проги где нужно общаться с БД руками коннектиться к базе..., я спрашивал можно ли в самой среде пути поиска по умолчанию прописать(вернее стереть что бы искал в текущем), ну или может быть есть какая системная переменная что бы не прямой а относительный путь указать прям в диалоге ADOConnection


 
andrewtitoff ©   (2012-02-20 13:45) [14]

Ну вы ребята и развели демагогию... =))))
Хорошо, признаюсь что не совсем корректно поставил вопрос, попробую переформулиравать:

Можно ли как-то указать ADOConnection что бы она искала базу в каталоге с программой, кстати он и является текущем при запуске программы, а потому ADOConnection у меня всё время подключен и переподключения мне не нужна - а значит в моем случае текущий - он и есть каталог программы.., так вот извиняюсь что отвлекся, собсттвенно суть вопроса можно ли все сделать вне тела программы т.е. ничего не кодить, только средствами настроек самого компилятора и компонента ADOConnection "Свойства канала передачи данных"?...


 
Ega23 ©   (2012-02-20 13:57) [15]


> Хорошо, признаюсь что не совсем корректно поставил вопрос,
>  попробую переформулиравать:


Поздно, джинн улетел, поезд ушёл.  :)


> только средствами настроек самого компилятора и компонента
> ADOConnection


Нет.


 
MsGuns ©   (2012-02-20 14:00) [16]

procedure TForm1.FormCreate(Sender: TObject);
begin
 ADOConnection1.ConnectionString := "Provider=Microsoft.Jet.OLEDB.4.0; "+
                              "Persist Security Info=False; Data Source="+
   ExtractFilePath(Application.ExeName)+"\MyDB.mdb";
end;


 
MsGuns ©   (2012-02-20 14:04) [17]

Блин, там слэш не нужен :(


 
andrewtitoff ©   (2012-02-20 14:15) [18]


> Нет.
>

Ну вот хотябы разочаровывающий но исчерпывающий ответ на вопрос... =)))
Хотя после долгих мучений он у меня все таки коннектится все таки стал, правда я сам не понял почему, но когда я сначала указываю на базу, а потом стираю и оставляю только имя самой базы -работает пока снова в настройки не залезешь.. =)))


 
Anatoly Podgoretsky ©   (2012-02-20 14:49) [19]


> Блин, там слэш не нужен :(

Не страшно, система не боится таких.


 
sniknik ©   (2012-02-20 16:36) [20]

> -работает пока снова в настройки не залезешь.. =)))
текущий путь сменился при выборе из диалога.

блин послушался бы умного совета из [1]... вместо шаманства при программировании, а после при работе с "творением".
хотя...
> и в ADOTable.active...
о чем это я... все закономерно.



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.062 c
2-1339501862
Scott Storch
2012-06-12 15:51
2013.03.22
PResStringRec -> string


6-1258480519
vadim009
2009-11-17 20:55
2013.03.22
Агент, мессенджер


2-1331629101
alexdn
2012-03-13 12:58
2013.03.22
Клик мышки


15-1353950365
Разведка
2012-11-26 21:19
2013.03.22
Проблема принтера для чеков VKP-80-II


15-1342379221
Просто ФАН
2012-07-15 23:07
2013.03.22
Работа с файлами