Кой драйвер да избера

какъв доставчик на данни трябва да бъде избран в свойството ConnectionSrting на компонента ADOConnection за свързване на dbf файл? Избирам Microsoft OLE DB Provider за ODBC драйвери, след което в раздела за връзка избирам източник на данни „dBase Files“

низът изглежда така - Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files

но когато се опитам да стартирам програмата, получавам съобщение със следната грешка проектът хвърли изключение на класа EOleEsception със съобщението [Microsoft][ODBC драйвер dBse]Неочаквана грешка в драйвера на външна база данни (15877) Процесът е спрян.

Доставчик=MSDASQL.1;Постоянна информация за сигурност=False;Източник на данни=dBASE файлове;Първоначален каталог=C:\

dbf файлът не е индикатор, dBase, Foxpro, Foxpro visual, clipper, clarion (вероятно), ADS и много други имат dbf разширението (и частично се разбират помежду си)

проблеми при свързване към dbf чрез Provider=MSDASQL.1, въпреки че имаше dBase, Foxpro файлове, Foxpro visual, clipper

има проблеми с кодировките - за visual Foxpro използвам Provider=VFPOLEDB.1

грешки понякога се появяват на 2000-ke, но на XP след инсталирането на MDAC 8.0 изглежда все още не се оплакваме

2sniknik Разбирам. но точният тип не е известен. и машинката е 100% и лисица досовска също. 2Nick_GM Да, това е, което правя.. по някакъв начин проблемът е някъде другаде.. Вече виждам решението.

Направих го с доставчика Microsoft.Jet.OLEDB.4.0 и точката на инициализация е Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\urban\delphi\projects\db_win\111\;Extended Properties=dBASE IV;Persist Security Info=False но с този ред Provider=MSDASQL.1; Запазване на информацията за сигурност= False; Източник на данни = ФайловеdBASE;Първоначален каталог=D:\urban\delphi\projects\db_win\111\ не работи по някаква причина.. Затворих дисплея на формуляра

с ADOTable1 do begin Active:=false; TableName:="MR47"; Open; end; ето как работи

2 Nick_GM - не забелязах съобщението ви веднага. в дизайнера като направя таблицата активна - отваря се. и при зареждане на програмата - грешка (

2 Nick_GM - не забелязах съобщението ви веднага. в дизайнера като направя таблицата активна - отваря се. и при зареждане на програмата - грешка (

Тук достъп чрез мини BDE

Доставчик=MSDASQL.1;Постоянна информация за сигурност=False;Източник на данни=dbASE файлове;Първоначален каталог=D:\urban\delphi\projects\db_win\111\

И тук достъпът е чрез ODBC драйвера, може да е същият mini BDE или може да е съвсем различен драйвер, това е какъв късмет.

2Анатолий Подгорецки благодаря. чрез този мини BDE изглежда работи, но възможно ли е да бъда по-подробен за - "колко късметлия" имам предвид? И)

> по-фино за - "какъв късмет" имам предвид? jet с dBase работи или през този mini BDE, или с нормалния, в зависимост от това как е инсталиран. и ODBC, в зависимост от версията (инсталацията), работи или чрез собствен драйвер, или през същия jet, но jet. вижте ;o)).

> и машинката е 100% и лисица досовска също. с DOS fox не е проблем, но с машинката могат. например clipper позволява и разбира > 255 дълго (не поле за бележка!), това ще се срещне, нито един драйвер няма да разбере правилно (или "отрязва" или изпада с неопределена грешка). (ситуацията е още по-зле с индексите ;o)))

Ако с JET все още можете да разчитате на този мини драйвер, можете също да го смените, ако желаете, но с ODBC това е редовна ситуация, когато дявол знае какъв драйвер си струва. Това е първият, а ето и вторите „dbase файлове“, върху които се намираБългарска версия на Windows, но на английски например този псевдоним ще е dBase Files и програмата няма да работи.

Мисля, че тези две неща са достатъчни.

В допълнение, повечето ODBC драйвери са криви :-) или поне много ограничени и със собствени проблеми.

Бих ви посъветвал да използвате BDE за dBase файлове, като най-ефективния двигател с отстраняване на грешки. И оставете ODBC и ADO за други бази.

> Това е първото, но второто "dbASE файлове" е в българската версия на Windows, а на английски например е > псевдонимът ще бъде dBase Files и програмата няма да работи. е, това не е най-"ужасното" нещо ;o), в крайна сметка можете да посочите името на драйвера вместо DSN името, то е непроменено.