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

Цель такова если есть, то ничего не делать, а если нет, то менять структуру и делать различные там дела.

Как менять структуру программно знаю, а как определить существование поля не знаю.

Помогите кто сможет!!!
...
Рейтинг: 0 / 0
Как определить существование поля в таблице
    #32335114
ИльяР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через какое-то SYS(). Еще copy structure extended создаст соответствующую таблицу со структурой исходной таблицы.
Изменять структуру программно можно через ALTER TABLE.
...
Рейтинг: 0 / 0
Как определить существование поля в таблице
    #32335138
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TYPE("MyTable.MyField")#"U" - поле есть
можна еще RTFM on AFIELDS() по работе с поиском значение в массиве типа ASCAN()
...
Рейтинг: 0 / 0
Как определить существование поля в таблице
    #32335214
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel!Riser:

Функция Type() возвращвет тип выражения или поля таблицы
Если использовать Type()#"C", то функция сравнивает выражение с типом данных

Character C
Numeric (also float, double, and integer) N
Currency Y
Date D
DateTime T
Logical L
Memo M
Object O
General G
Screen (created with SAVE SCREEN) S
Undefined type of expression U

возвращает .t. если истина и .f. если ложь.

Хотя штука не плохая, можно и применить, но все-же, разве нет какой-нибудь функции которая возвращала бы наличие поля в таблице.
...
Рейтинг: 0 / 0
Как определить существование поля в таблице
    #32335257
Cyrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2AngelOKES

Дык, чем тебя не устраивает вариант Hel!Riser? Ну напиши сам такую функцию, делов-то:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
LPARAMETERS lcField, lcTable
LOCAL Flag  && =.F.
FOR i= 1  TO FCOUNT(lcTable)
	IF FIELD(i,lcTable) = lcField
		Flag = .T.
		EXIT 
	ENDIF 
ENDFOR 	
RETURN Flag
...
Рейтинг: 0 / 0
Как определить существование поля в таблице
    #32335477
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AngelOKES
дык если она верн:ет 'U' - undefened - значит поля-то нету ;))
поэтому и сравниеца что результ не должен быть равен этому 'U' :Р
...
Рейтинг: 0 / 0
Как определить существование поля в таблице
    #32336646
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если речь идет о таблице включенной в базу данных, то можно еще так:

IF INDBC("MyTable.MyField","Field")=.F.
* В таблице MyTable нет поля MyField
ENDIF

При этом саму таблицу открывать не обязательно. Достаточно чтобы была открыта база данных.

Ну а в общем случае, конечно, лучше всего подойдет TYPE()

USE MyTable
IF TYPE("MyTable.MyField")="U"
* В таблице MyTable нет поля MyField
ENDIF
...
Рейтинг: 0 / 0
Как определить существование поля в таблице
    #32336674
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?FSIZE("MyField","MyTable")>0
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как определить существование поля в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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