C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как из Builder C++ поменять параметр Pach в ODBC д
VIC777
Отправлено: 28.07.2003, 13:30


Не зарегистрирован







Проблемма в следующем:
Необходимо получить доступ к выбранному файлу базы данных с расширением DBF. Все получается если в TTable свойству DatabaseName присвоить "База данных Visual FoxPro", предварительно заполнив параметр Pach в настройке ODBC драйверов (на закладке User DNS). Однако надо, чтобы этот путь заполнялся из программы. Подскажите как это сделать (по возможности желательно без использования SQL, хотя — лишь бы работало).
P.S. Другие драйвера (в том числе BDE) не подходят по разным причинам, использовать необходимо именно этот драйвер.
BUBL1n
  Отправлено: 24.02.2004, 17:58


Ученик-кочегар

Группа: Участник
Сообщений: 10



через ADO устроит?
CODE

AnsiString ConnectionStr;
//---------------------------------------------------------------------------
int Tform_main::ADOOpen()
{
try
 {
  ConnectionStr=makeconstr();
  ADOC->Connected=false;
  ADOC->ConnectionString=ConnectionStr;
  ADOC->Connected=true;
  return 1;
 }
catch(...)
 {
  return 0;
 }
}
//---------------------------------------------------------------------------
AnsiString Tform_main::makeconstr()
{
 AnsiString pass="Password="+Edit1->Text+";";
 AnsiString username="User ID="+Edit2->Text+";";
try
 {
  AnsiString str1 = "Provider=MSDASQL.1;"+pass+"Persist Security Info=False;"+username+"Extended Properties=\"DSN=Access DataBase;";
  AnsiString dbq = "DBQ="+e_adbn->Text+";";
  AnsiString str2 = "DriverId=281;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;\";";
  AnsiString IC = "Initial Catalog="+e_adbn->Text.SubString(0,e_adbn->Text.Length()-4);
  ConnectionStr = str1+dbq+str2+IC;
  return 1;
 }
catch(...)
 {
  return 0;
 }
}
//---------------------------------------------------------------------------

должно работать.... (у меня работаєт!) biggrin.gif

Вернуться в Работа с базами данных в C++Builder