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;
}
}
//---------------------------------------------------------------------------
|
должно работать.... (у меня работаєт!)
|
|