Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Непустые поля таблицы определяются как пустые / 7 сообщений из 7, страница 1 из 1
17.02.2012, 08:53
    #37666529
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непустые поля таблицы определяются как пустые
Написал такой код:

CLOSE TABLES
USE 'С:\SL101.DBF' IN 0 ALIAS 'table1'
SELECT table1

GO TOP
flag1 = .F.
perem = table1.bi
DO WHILE !EOF()
DO CASE
CASE VARTYPE(perem) = 'N'
IF ISBLANK(perem) = .F.
? RECNO(), perem
flag1 = .T.
EXIT
ENDIF
CASE VARTYPE(perem) = 'C'
IF EMPTY(perem) = .F.
? RECNO(), perem
flag1 = .T.
EXIT
ENDIF
CASE VARTYPE(perem) = 'L'
IF EMPTY(perem) = .F.
? RECNO(), perem
flag1 = .T.
EXIT
ENDIF
CASE VARTYPE(perem) = 'D'
IF DTOC(perem) = '//'
? RECNO(), perem
flag1 = .T.
EXIT
ENDIF
OTHERWISE
? 'Тип не подходит:'
? VARTYPE(perem)
EXIT
ENDCASE
SKIP
ENDDO
IF flag1 = .F.
? 'Пусто!'
ENDIF

SELECT table1
USE

В данной таблице есть заполненные поля Bi (character), но почему-то после выполнения вышеприведённого кода выводится сообщение, что эти поля пустые! То же самое получается, если подставлять вместо perem поля других типов, тоже заполненные. В чём здесь дело? Кто с этим сталкивался?
...
Рейтинг: 0 / 0
17.02.2012, 09:04
    #37666537
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непустые поля таблицы определяются как пустые
Как написал - так и работает. Это должно быть внутри цикла, а не перед:
Код: sql
1.
perem = table1.bi



PS сообщения нормально оформляй, а то глаза сломать можно.
Есть тэг SRC для оформления кода
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
CLOSE TABLES
USE 'С:\SL101.DBF' IN 0 ALIAS 'table1'
SELECT table1

GO TOP
flag1 = .F.
DO WHILE !EOF()
perem = table1.bi
	DO CASE
	CASE VARTYPE(perem) = 'N'
		IF ISBLANK(perem) = .F.
			? RECNO(), perem
			flag1 = .T.
			EXIT
		ENDIF
	CASE VARTYPE(perem) = 'C'
			IF EMPTY(perem) = .F.
			? RECNO(), perem
			flag1 = .T.
			EXIT
		ENDIF
	CASE VARTYPE(perem) = 'L'
			IF EMPTY(perem) = .F.
			? RECNO(), perem
			flag1 = .T.
			EXIT
		ENDIF
	CASE VARTYPE(perem) = 'D'
			IF DTOC(perem) = '//'
			? RECNO(), perem
			flag1 = .T.
			EXIT
		ENDIF
	OTHERWISE
		? 'Тип не подходит:'
		? VARTYPE(perem)
		EXIT
	ENDCASE
	SKIP
ENDDO
IF flag1 = .F.
	? 'Пусто!'
ENDIF

SELECT table1
USE

...
Рейтинг: 0 / 0
17.02.2012, 09:08
    #37666540
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непустые поля таблицы определяются как пустые
Код: sql
1.
2.
3.
4.
5.
6.
7.
...
flag1 = .F.
DO WHILE !EOF()
 perem = table1.bi
 DO CASE
 CASE VARTYPE(perem) = 'N'
...
...
Рейтинг: 0 / 0
17.02.2012, 09:11
    #37666543
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непустые поля таблицы определяются как пустые
Dima T,

Спасибо. Всё заработало. А в теге src выбирать sql? (
Код: sql
1.
Так?

)
...
Рейтинг: 0 / 0
17.02.2012, 09:19
    #37666547
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непустые поля таблицы определяются как пустые
9IKOBА в теге src выбирать sql?
Да.
Еще есть кнопочка "Предварительный просмотр": пишешь, давишь и смотришь как будет выглядеть после отправки.
...
Рейтинг: 0 / 0
17.02.2012, 09:22
    #37666551
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непустые поля таблицы определяются как пустые
Dima T,

Благодарю
...
Рейтинг: 0 / 0
17.02.2012, 09:42
    #37666578
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непустые поля таблицы определяются как пустые
Еще можно все эти действия проделать, например, так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT TOP 1 RECNO() as Record, bi as Value ;
 FROM c:\SL101.DBF ;
 WHERE !EMPTY(bi) ;
 ORDER BY 1 ;
 INTO CURSOR TMP
DO CASE
 CASE _TALLY=0
  ? 'Пусто!'
 CASE !INLIST(VARTYPE(Value),'N','C','L','D')
  ? 'Тип не подходит: ' + VARTYPE(Value)
 OTHERWISE
  ? Record, Value
ENDCASE
USE
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Непустые поля таблицы определяются как пустые / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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