powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как проверить наличие необходимых индексов?
8 сообщений из 8, страница 1 из 1
Как проверить наличие необходимых индексов?
    #32251885
demidovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

У меня проблема (по-моему, довольно жизненная, но для меня она стала настоящей засадой), которая требует срочного решения. Буду рад услышать любые советы и предложения!!!

Есть пачка DBF таблиц на Fox Pro, есть к ним набор CDX файлов. База регулярно будет обновляться и нет гарантий, что с индексами будет все в порядке (но известно, что в текущей базе с ними все ОК). В программе на C# (тут играет ключевую роль не сам язык, а его отрешенность от языка VFP) хочется проверить, что для таблицы существуют все необходимые индексы (точнее, что все необходимые наборы полей проиндексированы) - чтоб работа с БД не тормозила.
И, наконец, самое главное: я полный профан в VFP!!! А сделать все надо быстро и времени на изучение этой штуковины нет :((((

Кто и что посоветует?
Всем откликнувшимся заранее большое спасибо!
...
Рейтинг: 0 / 0
Как проверить наличие необходимых индексов?
    #32251984
_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Лучше день потерять - потом за час долететь" (С)

Изучи Фокс. Так будет вернее. Тем более, что научиться открывать таблицы, индексировать и т.д., то бишь работать с данными, можно за пару часов.
...
Рейтинг: 0 / 0
Как проверить наличие необходимых индексов?
    #32251991
ЗВН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет !

Как лежат dbf как отдельные таблицы или в составе контйнера баз данных(*.DBC) ???
...
Рейтинг: 0 / 0
Как проверить наличие необходимых индексов?
    #32252013
karly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Фоксе есть функции
KeyMatch() - поиск подходящего индекса для выражения
aTaginfo() - создает массив с информацией о всех тегах
TagCount() - возвращает количество тегов

Возможно, еще помогут
Tag(), TagNo(), Key()

В общем, ничего сложного :)
Удачи
...
Рейтинг: 0 / 0
Как проверить наличие необходимых индексов?
    #32252442
demidovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо еще раз всем откликнувшимся!

2 _GUEST:
Про пару часов не уверен, но даже если это и так, то как мне потом из своего кода запускать фоксовую программку?

2 ЗВН:
Как отдельные таблицы.

2 karly:
Спасибо за подсказку. Однако, см. вопрос выше.
...
Рейтинг: 0 / 0
Как проверить наличие необходимых индексов?
    #32252509
karly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фокс является обычным OLE-сервером.
Т.е. можно создать объект Fox, и обращаться
к его свойствам и методам.

Методов, собственно, немного:
DoCmd() - выполнить команду
Eval() - вернуть значение выражения
DataToClip() - скопировать данные из таблицы в клипборд
RequestData() - вернуть массив из таблицы.

Пример кода на каком нибудь языке ;)
Код: plaintext
1.
oFox = CreateObject( "VisualFoxPro.Application" )
CurrentDate = oFox.Eval( "Application.caption" )

Можешь написать простенькую программку на фоксе, и вызывать ее извне.
Код: plaintext
ReturnValue = oFox.Eval( "MyProc()" )

Если Фокса не знаешь совсем, маленькая подсказка - чтобы вернуть значение
из программы MyProc, нужно в программе написать
Код: plaintext
Return Whatever_You_Want


Когда освоишь вышесказанное, пиши сюда - объясню (я или еще кто-нибудь :) )
как создать инсталляшку, чтобы не устанавливать Фокс у клиента.
...
Рейтинг: 0 / 0
Как проверить наличие необходимых индексов?
    #32252526
karly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, досадная ошибочка ;)

Вместо
Код: plaintext
CurrentDate = oFox.Eval( "Application.caption" )

Следует читать
Код: plaintext
FoxCaption = oFox.Eval( "Application.caption" )

Либо
Код: plaintext
CurrentDate = oFox.Eval( "Date()" )
...
Рейтинг: 0 / 0
Как проверить наличие необходимых индексов?
    #32252570
demidovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 karly:
Спасибо за оконченную идею!

Но я, похоже, нашел более красивый способ (упс, сорри - не хотел обидеть фоксовиков :). Он, по крайней мере, короче в моей программке вышел
Вот он: у класса ConnectionClass в ADO есть метод OpenSchema() (он позволяет вытащить различные метаданные, в том числе и индексы). Поскольку код я пишу на C#, то у меня есть еще более удобный способ - метод
GetOleDbSchemaTable() у класса OleDbConnection.

Но инсталляшку фоксового рантайма мне, возможно, все равно придется делать, так что берегитесь следующих вопросов!-)))
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как проверить наличие необходимых индексов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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