Как мне автоматически увеличить поле в foxpro - PullRequest
0 голосов
/ 06 февраля 2012

Я использую vfp9, но программа, возможно, была написана на более раннем языке.Когда я открываю базу данных через vfp, поле доступно только для чтения, в отличие от других полей.Выполнение этого вручную (выберите max + 1) не работает на вставке, оно просто делает поле = 0.

У меня проблемы с поиском примеров в Интернете для правильного синтаксиса, кто-нибудь может помочь?

Редактировать: ОК, решение было оставить поле пустым.Поле находится в таблице, которая в конечном итоге добавляется в таблицу большего размера (таблицу с полем автономного номера).Однако перед добавлением поле используется в нескольких поисках.

Я бы предпочел не везде исправлять код, просто установив для поля значение null перед добавлением.replace field with null дает ошибку, хотя. Какой правильный синтаксис для установки поля таблицы на ноль?

Редактировать еще раз: удаление столбца сработало.Очевидно, вы не можете установить числовое поле в нуль.

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Если ваша структура таблицы выглядит следующим образом:

Structure for table:    D:\SO9162291.DBF
Number of data records: 2       
Date of last update:    02/06/12
Code Page:              1252    
Field  Field Name      Type                Width    Dec   Index   Collate Nulls
    1  COUNT           Integer                 4                            Yes
    2  CONTENTS        Character              24                             No
** Total **                                   30

В поле счетчика разрешено пустое значение, поэтому вы можете задать для поля типа integer нулевое значение любым из следующих методов.

USE so9162291
INSERT INTO so9162291 (count, contents) VALUES (null, "Test record")
UPDATE so9162291 set count = null WHERE contents = "Test record"
REPLACE count WITH null
0 голосов
/ 16 июня 2017

Я бы выполнил следующие SQL-запросы:

SELECT MAX(id)+1 AS laCount FROM so9162291 INTO CURSOR temp

INSERT INTO so9162291 (count, contents) VALUES(temp.laCount,"Test record")
...