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