Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP ODBC и Index IDX / 25 сообщений из 26, страница 1 из 2
18.02.2009, 08:23
    #35823733
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Народ как подключить индексы IDX через ODBC VFP. Все прекрасно работает только индексы не подхватываются. Версия DBF от FP2.6 драйвера поледние с MSDN. Наводит меня на мысль одно если через DBAse подключать то нужно создать файли с расширение MyTable.inf/ Внутри его написано [dBase] NDX=mytable1.ndx и т.д. Пробовал создать и вставить секцию [FoxPro 2.6] не хочет брать их, но Insert, Update работают в таблице, но индексы не обновляютя. ПОМОГИТЕ а то уже крыша не спеша сьежать начинает. Все понимаю что выбростить надо это дерьмо, но филиалы работают на этом дерьме и никуда не уйдешь...

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
18.02.2009, 09:34
    #35823851
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
выполнить команду
set index to ...idx
пробовали?
...
Рейтинг: 0 / 0
18.02.2009, 10:22
    #35823955
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Попробовал
Syntax error or access violation
...
Рейтинг: 0 / 0
18.02.2009, 10:58
    #35824033
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Поясняю, что подключаюсь не через Фокс, а через ODBC
...
Рейтинг: 0 / 0
18.02.2009, 10:59
    #35824037
VFP ODBC и Index IDX
AlexanderBПоясняю, что подключаюсь не через Фокс, а через ODBC
Это уже понятно. Команду в студию.
...
Рейтинг: 0 / 0
20.02.2009, 07:15
    #35828749
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Ну и где команда, такое впечатление что таким извратом никто не занимался.
Ну что-ж и на этом спасибо.
...
Рейтинг: 0 / 0
20.02.2009, 10:01
    #35828967
VFP ODBC и Index IDX
AlexanderBНу и где команда, такое впечатление что таким извратом никто не занимался.
Ну что-ж и на этом спасибо.
Сударь, это Вас просят привести команду, на которойй у Вас ошибка. Или мы еще и должны ее отгадать?
...
Рейтинг: 0 / 0
03.03.2009, 11:38
    #35847802
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Извините затупил


var rso=new ActiveXObject("ADODB.Recordset");
var query="insert into MyTable values(11,2,333,'TEXT")";
rso.open(query, "Driver={Microsoft dBase Driver (*.dbf)};DSN=dBase 5.0;SourceDB=C:\\;SourceType=DBF;Collate=MACHINE");

она работает но в индексах изменений нет;
...
Рейтинг: 0 / 0
03.03.2009, 11:40
    #35847813
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Вдогонку
Это с Dbase работает а Fox-выми индексами нет.
...
Рейтинг: 0 / 0
03.03.2009, 12:15
    #35847918
VFP ODBC и Index IDX
AlexanderB,
Вы наконец-то закончите вводить и себя, и других в заблуждение?
Как согласуются данные в приведенных ниже цитатах?
Версия DBF от FP2.6 драйвера поледние с MSDN
"Driver={Microsoft dBase Driver (*.dbf)};DSN=dBase 5.0;S
Кстати, что это за драйвер такой из первой цитаты? Где Вы такой раздобыли при его полном отстутствии в природе?
С чего Вы взяли, что драйвер из второй цитаты хоть что-то знает про фоксовые фичи?
Драйвер для фокса обычно называется "Microsoft Visual Foxpro Table Driver". Это для ODBC. Lkz OLEDB драйвер называется "VFP OLEDDB Provider".
...
Рейтинг: 0 / 0
05.03.2009, 08:19
    #35852248
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Версия DBF от FP2.6 драйвера поледние с MSDN
а вот с этого место поподробнее....
(чего уже только не накачал, скоро весь MSDN солью....)
Данный драйвер поддерживает индексы фокса от 2.6, я правильно понял

И еще раз поподробнее, есть ПО разработанное на Clipper базы DBF но индексы используются от фокса(прилинкованы доп библиотеки от фокса DBFSIX)
Задача - средствами ODBC закатать данные из другого источника в вышеуказазнные базы
с нормальной работой индексов

Надеюсь на этот раз не ввел заблуждение
...
Рейтинг: 0 / 0
05.03.2009, 09:40
    #35852347
VFP ODBC и Index IDX
AlexanderBДанный драйвер поддерживает индексы фокса от 2.6, я правильно понял
Так какой такой "данный"? Про фоксовые индексы знают только драйверы Foxpro, а не какие-то драйверы для работы с dbf. Что тут непонятного?
...
Рейтинг: 0 / 0
07.03.2009, 14:23
    #35857088
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Ну ставил я Microsoft Visual Foxpro Table Driver и что, не хочет он с индексами дружить, он их просто игнорирует(нет изменений в них). С DBF-кой работает а индексов будто и нет хотя все одном каталоге лежит.
...
Рейтинг: 0 / 0
07.03.2009, 14:47
    #35857099
VFP ODBC и Index IDX
AlexanderBНу ставил я Microsoft Visual Foxpro Table Driver и что, не хочет он с индексами дружить, он их просто игнорирует(нет изменений в них). С DBF-кой работает а индексов будто и нет хотя все одном каталоге лежит.
Индексы IDX никогда сами и не подхватывались. Подключение их надо всегда делать явно.
...
Рейтинг: 0 / 0
07.03.2009, 15:29
    #35857122
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
как это сотворить
...
Рейтинг: 0 / 0
07.03.2009, 15:31
    #35857123
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
AlexanderBкак это сотворить
если в настройках ODBC драйвера, то он даже не запрашивает есть они или нет
...
Рейтинг: 0 / 0
07.03.2009, 15:59
    #35857138
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Не уверен, но, как мне кажется, у вас ничего не получится.

Индексы IDX - это как бы "локальные" индексы. Создаются "по месту" для решения локальных задач. Поэтому автоматически никогда не подключаются. Как следствие, разработчиков драйверов не особо и заботило их поддержание, поскольку при работе с такими индексами они просто пересоздавались при старте приложения.

Тем более, у вас вообще не стандартная ситуация - таблицы Clipper + некий драйвер для поддержания IDX формата FoxPro. На такую связку ни один драйвер "в здравом уме" никто "затачивать" не будет.

В общем, решение будет примерно такое:

1. Средствами ODBC закачать данные в DBF-таблицы
2. Средствами самого ПО выполнить переиндексацию (наверняка должна быть такая утилита)

При этом, имейте в виду, что формат DBF-таблиц от Clipper несколько отличается от формата DBF-таблиц для FoxPro. Это значит, что не все таблицы можно будет модифицировать.

Правда, есть еще такой продукт, называется

Advantage Database Server

Домашняя страница производителя здесь

Advantage Developer Zone

Эта штука платная, но они заявляют о том, что работают и с таблицами Clipper и с таблицами FoxPro с поддержкой их индексов. Даже были слухи о том, что у них есть бесплатные драйверы ODBC для таблиц Clipper. Но я так их и не нашел

Небольшое обсуждение этого продукта было здесь

Advantage Database Server
...
Рейтинг: 0 / 0
07.03.2009, 20:09
    #35857251
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
1. Средствами ODBC закачать данные в DBF-таблицы
2. Средствами самого ПО выполнить переиндексацию (наверняка должна быть такая утилита)


Вобщем я так и предпологал, что полная З... Но 600-800тыс. записей каждое утро меня сьедят вместе с костями(это минут 30-40 = создание индексов)

Ну впрочем и на этом спасибо.
...
Рейтинг: 0 / 0
09.03.2009, 00:42
    #35857859
gepard45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Рекомендации:
- использовать вместо IDX индексов CDX (см. документацию IDX индексы оставлены для совместимости с FoxPro 2.0)
- если Вы полностью обновляете таблицу, то надо использовать команду ZAP, а дальше Append

И не надо грязи добавление в таблицу 600-800 тысяч записей в Foxpro занимает не более нескольких минут
...
Рейтинг: 0 / 0
09.03.2009, 17:41
    #35858484
Моряк с Ордынки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
gepard45Рекомендации:
- использовать вместо IDX индексов CDX (см. документацию IDX индексы оставлены для совместимости с FoxPro 2.0)
- если Вы полностью обновляете таблицу, то надо использовать команду ZAP, а дальше Append

И не надо грязи добавление в таблицу 600-800 тысяч записей в Foxpro занимает не более нескольких минут

Уважаемый, использовали IDX-индексы в старых программах (до 1994 года в основном, когда FoxPro 2.6 появился), коих настрогали за почти 20 лет видимо-невидимо... Ну многие конечно уже устарели, но самые-самые все еще живут. Я вот лично не знаю, найду ли время, чтоб переделать хотя бы часть из работающих программ... Я их уделал только на предмет печати на лазерном принтере (подключил программу Sprint), а перелопатить кучу prg-текста на предмет изменения индексов просто не в состоянии, т.к. загружен другими делами...

- 800 тысяч за неск. минут?.. Ну не знаю, не пробовал... есть сомнения...
...
Рейтинг: 0 / 0
09.03.2009, 19:53
    #35858621
gepard45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
По поводу 600-800 тыс. записей это факт, проверено.
На самом деле IDX и CDX не так критично (технология Rusmore поддерживает и те и другие, по заявам Билла, но CDX это существуящая схема)
Главное для оптимизации добавления понимать, следущие:
- команда Delete All, не удаляет физически записи а делает метку о удалении, по этому она работает на порядок медленние чем команда ZAP, котороая просто тупо чистить заголовок файла
- далее очень сильно зависит, где вы запустили программу на сервере или локальной станции
...
Рейтинг: 0 / 0
11.03.2009, 14:07
    #35862167
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
- 800 тысяч за неск. минут?.. Ну не знаю, не пробовал... есть сомнения...[/quot]

Это что за фокс такой что за несколко секунд...
у меня 4 индекса готовиться на серваке (круче некуда) 25-30 мин.
...
Рейтинг: 0 / 0
11.03.2009, 14:09
    #35862173
AlexanderB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
gepard45Рекомендации:
- использовать вместо IDX индексов CDX (см. документацию IDX индексы оставлены для совместимости с FoxPro 2.0)
- если Вы полностью обновляете таблицу, то надо использовать команду ZAP, а дальше Append

И не надо грязи добавление в таблицу 600-800 тысяч записей в Foxpro занимает не более нескольких минут

Мудро!!! компиленые проги без исходников - ЗАДАЧА.
...
Рейтинг: 0 / 0
12.03.2009, 20:54
    #35865936
gepard45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Все же Вы определитись:
- Вы одноразово обнавляете всю таблицу или только ее часть
- если всю Вы: 1-можете удалить все индексы в существующей таблице 2-добавить в таблицу 3- создать индексы. (использвание команды Zap приблизительно дает такие же результаты)
- далее как я говорил очень ВАЖНО, где Вы запускаете приложение на сервере или клиенте (разниза во времени может составить более 70 процент, если конечно сервер не загружен другими задачами по самое не балуй)
- ну конечно еще есть прямая взаимосвязь длины записи в таблицы и длины индекса, то прямая зависимость длина - быстродействие винчестера (это кстати общая зависимость и не зависти от языка реализации)
...
Рейтинг: 0 / 0
12.03.2009, 21:02
    #35865943
gepard45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP ODBC и Index IDX
Кстати, забыл, для работы с индексами таблицами Вам совершенно не нужно "лезть" в текст программы. Главное правило, оставте индексы разработчика такими как есть, а свои можете добавлять сколько угодно. Памятка: в принципе по быстродействию, особенно на этапе добавления, IDX и CDX индексы можно считать равноценными
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP ODBC и Index IDX / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]