![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Какой то непонятный этот Jet [D6, dBase, FoxPro, ADO]
kombat © (2002-11-13 18:20:00)Привет всем! Совсем достал меня этот АДО. Делаю источник типа Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=d:\work\account\work\;Mode=Read|Share Deny None;Extended Properties=dBase IV;Persist Security Info=True
и при попытке в запросе обратится к проиндексированному полю вылетает ошибка Индекс не найден!
mdac 2.7, Jet4 SP3, D6 SP2 в свойствах ISAM стоит IndexFilter = Индекс dBASE (*.cdx) - до этого стояло Индекс dBASE (*.ndx;*.mdx)
Не помогает !!!
Помогите!!!
kombat (2002-11-15 12:20:00) [1]После длительных исследований, я для понял что лучшый вариант для мой задачи это связка HalcyonDataSet & ClientDataSet
работаем примерно так
cdsDogovor.Close;
tDogovor.Close;
tDogovor.DatabaseName := sFoxBasePath;
tDogovor.TableName := "dogovor.dbf";
cdsDogovor.Open;
cdsDogovor.AddIndex("IdxTel", "Tel", [], "", "", 0);
cdsDogovor.IndexDefs.Update;
cdsDogovor.IndexName := "IdxTel";
cdsDogovor.Filtered := true;
tDogovor.Close;
т.е работаем методами Filter, Locate
это конечно лишает меня преимуществ SQL и при больших таблицах неэффективно, но у меня таблички 1-10 тыс записей, работает нормально, файлы не блокируются, и такая связка открывает нормально файлы что уже используются.
Всем спасибо за помощь
sniknik (2002-11-14 12:35:00) [2]"эксклюзивно" это только для сабя "в одно рыло" так сказать. Естественно нельзя держать открытыми таблицы когда пытаются так открыть.
Halcyon платная?
http://www.vodonosov.newmail.ru/develop/develop.htm
чтото я не заметил здесь упомининия о деньгах. Конечно если принципииаааально хочеш зарегистрированную версию ... :(
> Фокс 2,6 есть в 3,5 Jet. Есть и ставится тем же Mdac-ом но версии помладше 2.0 помоему последняя. Но проблема, если у тебя уже стоит Jet 4.0 то из 3.5 ISAM-ы не вызываются! (у меня не получилось) прямое подключение к 3.5 ничего не дает как и ссылка из 4.0 на 3.5, максимум что получается открыть через них базу Access 97. Возможно синтаксис там другой, или руки такие кривые :(. если у тебя получится напиши как.
>по умолчанию в 2000 Проф присутствует? а хрен его знает, по моему в проф по умолчанию Mdac 2.5 ставится уже без него. Но у меня стоит, может и с умолчания осталась может после экспериментов разных, у меня на работе стоит Jet 4.0 и 3.5 дома Jet 4.0 и 3.5 и 3.0. Поставь вчистую и посмотри.
kombat (2002-11-14 12:01:00) [3]насколько я понял, то Фокс 2,6 есть в 3,5 Jet. Он какими приложениями устанавливается? или он по умолчанию в 2000 Проф присутствует?
kombat (2002-11-14 11:49:00) [4]блокировка проявляется в том что нельзя открыть эту табличку эксклюзивно в Фоксе. Может это конечно и невыполнимо в принципе, но нужно чтобы делфийская прога открыла себе табличку только для чтения, а проги на Фоксе работали с этой табличкой в это время как привыкли.
Halcyon не подходит, он денег стоит
sniknik (2002-11-14 10:30:00) [5]возьми строку по минимуму, все что надо по умолчанию встанет, как и режим Share Deny None
Provider=MSDASQL.1;Extended Properties="DRIVER={Microsoft Visual FoxPro Driver};SourceDB=d:\;SourceType=DBF;"
с такой строкой из 2-мест одну таблицу открываю, т.е. неблокирована, у тебя как? каким образом блокировка проявляется?
kombat (2002-11-14 09:58:00) [6]Подключаюсь через Visual Foxpro (ODBC Driver), все работает, но проблема в том что он блокирует табличку, даже при Mode=Read|Share Deny None, а это принципиальное условие (неблокировка).
Fixxxer (2002-11-14 01:46:00) [7]Может за одно подскажет кто? Где можно скачать FoxPro 3. Ну уж очень он понадобился, а найти не могу.
sniknik (2002-11-13 19:18:00) [8]kombat © (13.11.02 18:58)
создавать индекс самому через Jet, то как?
запросом CREATE INDEX [Index] ON [TABLE] (Field)
sniknik (2002-11-13 19:14:00) [9]Halcyon приемлемый вариант, сам пользуюсь под Клиппер (*.ntx), а через ADO можно к Visual Foxpro (ODBC Driver) подключатся, читать будет и редактировать и т.д. до первого слета индекса т.к. через него его не сделаеш.
Андрей Прокофьев (2002-11-13 19:07:00) [10]Может, без АДО?
использовать компоненты Halcyon.
они поддерживают индексы
kombat (2002-11-13 18:58:00) [11]а если нет возможности менять индекс (эти индексы и таблички использует действующая прога на Fox2.6)? то как быть?
Но даже если и создавать индекс самому через Jet, то как?
sniknik (2002-11-13 18:49:00) [12]*.cdx это фокспрошный индекс, Jet его не понимает, вернее прекратил поддержку фокса с версии 3.x короче довольно давно (раньше были исамы FoxPro 2.0, 2.5, 2.6, 3.0 счас нету :-((). переделывай под *.mdx (сам через Jet создай)