|
Не подключается *.dbf (FoxPro) ни через BDE ни через ADO
|
|||
---|---|---|---|
#18+
Добрый день. При подключении к базе через Builder, написанной на FoxPro 2.6, выдает ошибку "Variable 'KOD_SKL' is not found". При удалении индексных файлов (*.cdx) подключение проходит нормально. Дело в том, что с базами работают другие пользователи, поэтому удалять индексы нет возможности. Если запустить FoxPro и открывать базы через него - выдает туже самую ошибку, но если прописать строчку в командном окне Фокса: KOD_SKL = '00001' то все нормально. При более подробном рассмотрении базы (через Фокс - структура базы) можно увидеть строчку: Index filter KK_SKL=KOD_SKL. Тип KK_SKL character. (KOD_SKL = '00001 '- это строка) Т.е. получается, что KOD_SKL - это переменная? Тогда как ей можно присвоить значение? При добавлении в ADO->SQL запроса вида "USE prod.dbf INDEX prod.cdx" вроде проходит, но выдает туже самую ошибку ("Variable 'KOD_SKL' is not found"). Никто не подскажет что тут можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2009, 10:25 |
|
Не подключается *.dbf (FoxPro) ни через BDE ни через ADO
|
|||
---|---|---|---|
#18+
flanderz, вообще-то использовать внешние переменные в индексных выражениях крайне нехорошая идея. Я бы посоветовал убрать переменную из индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2009, 12:19 |
|
Не подключается *.dbf (FoxPro) ни через BDE ни через ADO
|
|||
---|---|---|---|
#18+
Дело в том, что не одно приложение на этих базах работает и переписать их все заново не представляется возможным, сам я пишу на Билдере и до сих пор никаких проблем с доступом к Фоксовским базам не возникало. В принципе, я надеюсь, что нашел уже решение (буду пробывать запускать Фокс из-под своего приложения, делать копию нужных мне баз при помощи Фокса и потом его закрывать), но согласитесь, что решение не очень красивое, но если проще ничего не появится, то придется воспользоваться этим. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2009, 12:47 |
|
Не подключается *.dbf (FoxPro) ни через BDE ни через ADO
|
|||
---|---|---|---|
#18+
flanderz, Можно попробовать через VfpOleDb.dll - там есть возможность выполнения фоксовских команд. Перед выборкой данных послать команду объявления переменной и открытия таблицы, типа: f_cmd="KOD_SKL = '00001'"+сhr(10)+"USE Table" vfpdb.execute(f_cmd) По идее, до закрытия сессии с этой таблицей можно будет работать нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2009, 13:17 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1585788]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 160ms |
0 / 0 |