Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.071 c
15-1353702602
Юрий
2012-11-24 00:30
2013.03.22
С днем рождения ! 24 ноября 2012 суббота


15-1334349002
Юрий
2012-04-14 00:30
2013.03.22
С днем рождения ! 14 апреля 2012 суббота


2-1342008651
Handler
2012-07-11 16:10
2013.03.22
const


2-1328775163
Scott Storch
2012-02-09 12:12
2013.03.22
xml, utf8


2-1340872916
vasa777
2012-06-28 12:41
2013.03.22
Опции





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