Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 9
1

Можно ли обойтись без алиаса?

02.06.2010, 17:41. Просмотров 2694. Ответов 14
Метки нет (Все метки)

Есть программа Builder 6, которая работает с таблицами Paradox которые хранятся в определенной папке, работаю с компонентом Query...
Необходимо переделать чтобы работала не через alias, а просто через путь ExtractFilePath(Application->ExeName)+ "BD\\"??? Возможно ли это в принципе, а если да то какие нужны изменения????
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2010, 17:41
Ответы с готовыми решениями:

Можно обойтись без алиаса?
Как меня задолбал этот алиас... Как только приношу мою прогу на проверку, всегда приходится...

Можно ли обойтись без if-во?
Создать структуру с полями (или класс с функциями), которые приведены в задаче. Описание структуры...

можно ли обойтись без IF ?
Нужно заполнить с главного массива(mas_g) один массив(mas1) елементы с чётными номерами, а в...

Куча. Можно ли обойтись без?
Здравствуйте! Я пишу код на С под stm32. В STM32F427ZITx_FLASH.ld файле увидел выделение ROM памяти...

14
3254 / 1850 / 515
Регистрация: 31.05.2009
Сообщений: 6,324
02.06.2010, 18:04 2
На закладке BDE есть компонент TDatabase, он делает временный алаиас - только для своей программы.
0
51 / 51 / 13
Регистрация: 05.06.2008
Сообщений: 139
02.06.2010, 22:53 3
как вариант, можно самому создавать временный алиас, а потом его удалять:
C++
1
2
3
4
5
if(Session->IsAlias("KontrArt_cop_dov"))Session->DeleteAlias("allias_temp_777");//Удаляет псевдоним Kontr.                               }
            Session->AddStandardAlias("allias_temp_777",GetCurrentDir(),"PARADOX");//Создает новый псевдоним.
            Table1->DatabaseName="allias_temp_777"; //
            Table1->TableName="table.db";  
            Table1->Active=true;
или пробуй подключатся с помощью ADO
1
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 9
03.06.2010, 11:37  [ТС] 4
Цитата Сообщение от Jafa Посмотреть сообщение
как вариант, можно самому создавать временный алиас, а потом его удалять:
C++
1
2
3
4
5
if(Session->IsAlias("KontrArt_cop_dov"))Session->DeleteAlias("allias_temp_777");//Удаляет псевдоним Kontr.                               }
            Session->AddStandardAlias("allias_temp_777",GetCurrentDir(),"PARADOX");//Создает новый псевдоним.
            Table1->DatabaseName="allias_temp_777"; //
            Table1->TableName="table.db";  
            Table1->Active=true;
или пробуй подключатся с помощью ADO
Спасибо то что я и хотел, все работает
немного изменил правда

C++
1
2
3
4
5
6
7
8
if(!Session->IsAlias("autopark2"))
{
 
String Patch = ExtractFilePath(Application->ExeName)+ "BD\\";
Session->AddStandardAlias("autopark2",Patch  ,"PARADOX")   ;
 
Session->SaveConfigFile();
}
такой вопрос как сделать чтобы при изменении пути Patch изменялся и путь в алиасе?????
0
3254 / 1850 / 515
Регистрация: 31.05.2009
Сообщений: 6,324
03.06.2010, 11:40 5
Я настоятельно рекомендую потратить пять минут на освоение моего варианта.

1) Корректируя алиасы на чужой машине, Вы можете наступить на грабли с неверно сконфигурированным BDE.
2) Зачем оставлятьпосле себя мусор?

Последовательность действий такая: добавляется на форму TDatabase, у него выставляется параметр DatabaseName - и это имя появляется в списке доступных алиасов для таблиц и запросов.

Для привязки к конкретной директории добавляете в программу строчку:
C++
1
  Database1->Params->Add("PATH="+InstallPathDB);
1
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 9
03.06.2010, 11:46  [ТС] 6
Цитата Сообщение от Black Fregat Посмотреть сообщение
Я настоятельно рекомендую потратить пять минут на освоение моего варианта.
а вот здесь поподробней пожалуйста... как его использовать????
0
3254 / 1850 / 515
Регистрация: 31.05.2009
Сообщений: 6,324
03.06.2010, 11:49 7
Я уже успел дописать к своему сообщению.

Грубо говоря, настройка Database полностью повторяет настройку алиаса. И параметр Params - это аналог списка параметров алиаса.
0
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 9
03.06.2010, 12:31  [ТС] 8
Цитата Сообщение от Black Fregat Посмотреть сообщение
Я уже успел дописать к своему сообщению.

Грубо говоря, настройка Database полностью повторяет настройку алиаса. И параметр Params - это аналог списка параметров алиаса.
Попробовал ваш метод !!!! почемуто ругается Unknown database ... хотя настроил вроде правильно...
PATH=F:\Autopark2\BD\
ENABLE BCD=FALSE
DEFAULT DRIVER=PARADOX
Alias name и Driver name задавать нужно?
0
Супер-модератор
8720 / 2376 / 138
Регистрация: 07.03.2007
Сообщений: 11,343
Завершенные тесты: 1
03.06.2010, 12:35 9
Homer_by, используйте TSession... в нем можно создать временный алиас... реально работает, проверено на рабочих проектах...
0
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 9
03.06.2010, 12:39  [ТС] 10
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
Homer_by, используйте TSession... в нем можно создать временный алиас... реально работает, проверено на рабочих проектах...
Вы имеете ввиду компоненту???
0
Супер-модератор
8720 / 2376 / 138
Регистрация: 07.03.2007
Сообщений: 11,343
Завершенные тесты: 1
03.06.2010, 12:45 11
Homer_by, ну да...
вот пример:
C++
1
2
3
4
5
6
7
8
9
  Session->ConfigMode = Session->ConfigMode << cfmSession;
  Session->AddStandardAlias("tmp", ExtractFileDir(Application->ExeName), "FOXPRO");
  Database1->AliasName = "tmp";
  Database1->DatabaseName = "base";
  Table->DatabaseName = Database1->DatabaseName;
  Query->DatabaseName = Database1->DatabaseName;
  try{
    Database1->Open();
  }catch(...){}
и еще надо указать - AutoSessionName = True
1
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 9
03.06.2010, 13:02  [ТС] 12
Остановился всеже на таком варианте:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 if(!Session->IsAlias("autopark2"))
{
//InitialisePatchDB() - это твоя функция которая возвращает путь к папке бд
String Patch = ExtractFilePath(Application->ExeName)+ "BD\\";
Session->AddStandardAlias("autopark2",Patch  ,"PARADOX")   ;
Session->SaveConfigFile();
}
 else
 {
 Session->DeleteAlias("autopark2") ;
 String Patch = ExtractFilePath(Application->ExeName)+ "BD\\";
Session->AddStandardAlias("autopark2",Patch  ,"PARADOX")   ;
Session->SaveConfigFile();
 }
Может код и неэффктивный , каждый раз заново создается alias, но у меня работает...

Спасибо всем за помошь!!!!
0
3254 / 1850 / 515
Регистрация: 31.05.2009
Сообщений: 6,324
03.06.2010, 16:26 13
Не совсем понятно, почему не заработал мой вариант, хотя он стандартно описан в борландовской документации. Вот кусок формы из работающего модуля:
Код
  object Database: TDatabase
    DatabaseName = 'KLADR'
    DriverName = 'STANDARD'
    Params.Strings = (
      'PATH=E:\Actual\NalogXML\KLADR')
    SessionName = 'Default'
  end
  object Table1: TTable
    DatabaseName = 'KLADR'
    TableName = 'STREET.DBF'
  end
DriverName и SessionName выставляются по умолчанию
0
0 / 0 / 0
Регистрация: 01.03.2011
Сообщений: 16
29.11.2011, 16:37 14
Всем привет!!!
Посоветуйте какую нибуть БД, чтоб без всяких там алиасов... а просто - если файл БД находится в каталоге с прогой, чтоб всё работало!
З.Ы. Нужно в качестве портативной версии, к примеру для роботы прямо с флешки...
0
4943 / 2407 / 530
Регистрация: 05.06.2008
Сообщений: 7,508
Записей в блоге: 3
29.11.2011, 17:29 15
Базы Accses с технологией ADO ну как вариант
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2011, 17:29

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

Можно ли обойтись без mutex?
в оф мануале : говориться что данные будут появляться то так то эдак (неопределенность из-за...

Можно ли обойтись без курла?
Доброе утро! Занялся апи вконтакте, если переходить ручками то все работает, а если через PHP, то...

Можно ли обойтись без переходника?
Кабеля от АТС идут к телефону с помощью вот такого вот переходника(1 фото) Захотелось сделать всё...

Мессенджер: можно ли обойтись без БД
Здравствуйте, я сейчас занимаюсь разработкой, пока что архитектуры, мессенджера. Я как-то слышал,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.