Как создать индекс первичного ключа из двух или более столбцов в Visual FoxPro 9? Столбцы могут быть разных типов.Создание первичного ключа из двух или более столбцов в Visual FoxPro 9
ответ
Составные индексы должны быть строками, поэтому используйте соответствующую функцию (STR(), DTOS() и т. Д.), Чтобы преобразовать поле перед конкатенацией. См. MSDN documentation для более подробной информации.
Еще одно предостережение - убедиться, что вы никогда не обрезаете символьное представление любого из столбцов, включенных в ключи.
Что-то еще, о чем вы должны знать, это то, что код ссылочной целостности, сгенерированный VFP, иногда не чист или предназначен для работы с конкатенированными ключами. Код намного проще для суррогатных ключей (одиночный бессмысленный столбец, обычно целочисленный или GUID). Возможно, было слишком поздно в дизайне, чтобы вы это рассмотрели, но я выложу его здесь на всякий случай, если он все еще находится на стадии разработки или все еще будет иметь практическое изменение.
Rick Schummer VFP MVP
Спасибо, я получил его сейчас. – Prasad
Еще одно предостережение при преобразовании дат (если применимо), как упоминалось в Игнасио, использует DTOS(), который преобразует в строку в формате YYYYMMDD. В зависимости от «SET CENTURY ON/OFF» в VFP век может применяться только 09 вместо 2009 года и давать ложные находки во время поиска. – DRapp
DRAP - функция DTOS() не зависит от установки SET CENTURY. Это одна из причин, почему это лучше для индексации. Опасность заключается в том, что вам нужно включить полный век при выполнении SEEK. –