Jarad
Дата: 19.05.2005 13:15:35
Использую драйвер Provider=Microsoft.Jet.OLEDB.4.0,
подключаюсь к дбф базе, использую
функционал "ADODB.Command", "ADODB.RecordSet"
На моей машине, я все "это" писалось, все работает. Перенес на другую машину (там где реально должно работать), вылазит ошибка:
Microsoft JET Database Engine: Индекс не найден.
Думал что трабл в MSDAC, (версию не знаю, и не знаю как посмотреть:)), проинсталил на машину, ребутнул... та же песня...
Вроде как ясно что проблема с дровами, но что надо происталить незнаю...
Jarad
Дата: 19.05.2005 18:14:05
Пробую в аксесе, на другой машине,
добавляю таблицы, аксес сразу "хочет" чтобы ей указали файл индекса к каждой из таблиц, причем маску выдает *mdx,*ndx, мой индескс — *cdx.
Т.е. причина появления меседжа на "другой машине" в клиенте — аксес сам индексы не подхватил, клиент тоже не подхватывал.
Почему тогда на моей машине индексы подхвачиваються...и в аксесе и в клиенте? Можно ли явно в теле запроса указать индексы?
Запрос вида:
SELECT DateDoc, COUNT(IDDOC) AS Que_Розн, SUM(Sum1) AS SumPlus_Розн, SUM(Sum2) AS SumMinus_Розн
FROM
(
SELECT journ.DATE AS DateDoc,
journ.IDDOC,Doc.SP7998,
IIF (Doc.SP7998 = 0,SUM(Tab.SP8009),00000000000.00) As Sum1,
IIF (Doc.SP7998 = 1,SUM(Tab.SP8009),00000000000.00) As Sum2
FROM journ INNER JOIN ( DT8012 AS Tab INNER JOIN DH8012 AS Doc ON Doc.IDDOC = Tab.IDDOC)
ON journ.IDDOC = Tab.IDDOC
WHERE (journ.IDDOCDEF LIKE '%66K%')
AND (journ.DATE >= #2005-03-01#) AND
(journ.DATE < #2005-04-01#)
AND (journ.CLOSED AND 1 = 1)
GROUP BY journ.DATE,journ.IDDOC,Doc.SP7998
)
GROUP BY DateDoc
ORDER BY DateDoc
journ, DH8012 , DT8012 — таблицы дбф.
Jarad
Дата: 20.05.2005 12:33:27
Выяснил, проблема решена.
Тут сказано что http://support.microsoft.com/kb/248841/EN-US/
Есть ветка реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Xbase
Есть параметр BDE
0 — Use the BDE if it is installed. If not, use the ISAM.
1 — Always use the BDE. If it's not installed then fail.
2 — Always use the ISAM.
Ни у меня ни на других машинах этого параметра небыло.
Если явно его указать, и установить 1, у меня тоже перестает работать — BDE у меня отсутвует, при 0 — работает (BDE у меня отсутвует но используется ISAM)
На других машинах, BDE утановлен, поэтому отсутвие ключа (прировнивается к 0) как и явное указание 1 выдавало ошибку — BDE не хотел понимать запрос, или ругался на индексы.
Явная установка параметра в 2 заставляет работать и у меня и на других машинах, причем из драйверов необходим только МДАС, и поледний 8-й апдейт к Джету (желательно конечно).