Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как определить существование поля в таблице / 8 сообщений из 8, страница 1 из 1
26.11.2003, 12:08
    #32335104
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить существование поля в таблице
Подскажите как мне программно определить есть ли какое-то определенное поле в таблице.

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

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

Помогите кто сможет!!!
...
Рейтинг: 0 / 0
26.11.2003, 12:16
    #32335114
ИльяР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить существование поля в таблице
Через какое-то SYS(). Еще copy structure extended создаст соответствующую таблицу со структурой исходной таблицы.
Изменять структуру программно можно через ALTER TABLE.
...
Рейтинг: 0 / 0
26.11.2003, 12:26
    #32335138
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить существование поля в таблице
TYPE("MyTable.MyField")#"U" - поле есть
можна еще RTFM on AFIELDS() по работе с поиском значение в массиве типа ASCAN()
...
Рейтинг: 0 / 0
26.11.2003, 13:03
    #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
26.11.2003, 13:17
    #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
26.11.2003, 14:39
    #32335477
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить существование поля в таблице
2 AngelOKES
дык если она верн:ет 'U' - undefened - значит поля-то нету ;))
поэтому и сравниеца что результ не должен быть равен этому 'U' :Р
...
Рейтинг: 0 / 0
27.11.2003, 13:16
    #32336646
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить существование поля в таблице
Если речь идет о таблице включенной в базу данных, то можно еще так:

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

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

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

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


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