powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите разобраться с массивом
7 сообщений из 7, страница 1 из 1
помогите разобраться с массивом
    #35656064
keeper89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот часть кода:
LOCAL tmp
DIMENSION tmp(1)
SELECT MAX (&Fname) FROM &Tname INTO ARRAY tmp nofilter

t=tmp+1
ENDIF

нужно перед присваиванием переменной t, обработать ситуацию, если таблица оказалась пустой.
Я пробовал поставить проверку if tmp==.NULL. почему-то фокс все время считает, что tmp не нул, хотя в дебаге он меня уверяет, что tmp=.NULL.
В чем проблема, кто знает подскажите плиз.
...
Рейтинг: 0 / 0
помогите разобраться с массивом
    #35656073
AUTOINC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
SELECT ...
If _tally =  0 
  ... получено  0  записей

Судя по коду это генератор IDшников. Не проще фоксовый AUTOINC использовать?
...
Рейтинг: 0 / 0
помогите разобраться с массивом
    #35656076
keeper89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тали я тоже пробовал, он все время выдает значение 1.
...
Рейтинг: 0 / 0
помогите разобраться с массивом
    #35656079
AUTOINC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
keeper89тали я тоже пробовал, он все время выдает значение 1.

Ступил. Он все правильно выдает. А почему ты к массиву без указания номера элемента обращаешься?
Попробуй:
Код: plaintext
if ISNULL(tmp[ 1 ])
...
Рейтинг: 0 / 0
помогите разобраться с массивом
    #35656083
keeper89Я пробовал поставить проверку if tmp==.NULL. почему-то фокс все время считает, что tmp не нул, хотя в дебаге он меня уверяет, что tmp=.NULL.
В чем проблема, кто знает подскажите плиз.
Проблема в неправильном понимании Null. C ним нельзя сравнивать. Именно поэтому есть специальная функция IsNull(). Именно с ее помощью надо проверять значение на Null.
Код: plaintext
if isnull(tmp)
...
Рейтинг: 0 / 0
помогите разобраться с массивом
    #35656926
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме неправильного понимания .NULL. может возникнуть неправильное понимание
конструкции if endif.

По поводу .NULL., советую посмотреть результаты сравнения и объединения всех
возможных логических значений:


AND
.T. .F. .NULL.
..T. .T. .F. .NULL.
..F. .F. .F. .F.
..NULL. .NULL. .F. .NULL.

Пример сравнения и объединения OR рассмотреть самостоятельно.

Так же нужно понимать конструкцию if

if условие
выражение1
else
выражение2
endif


Так вот выражение1 отработает тогда и только тогда, когда условие = .T.
(т.е. условие истинно)
А выражение2 отработает тогда, когда условие не является истинно. Т.е. если
условие .f. ИЛИ .NULL.(!!!)


PS советую очень хорошо разобраться в том, какие результаты будут полученны
при сравнении различных логических величин (благо вариантов самой величины
всего три). И хорошенько уяснить, что сравнение .NULL.=.NULL. никогда не
даст .t., а даст только .NULL. Что для конструкции IF является указанием не
выполнять выражение1, т.к. условие не истинно!


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
помогите разобраться с массивом
    #35657810
keeper89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, ребят! запомню на будущее)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите разобраться с массивом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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