Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Использование val(thisfrom.text1.value) в операциях insert/update/delete / 5 сообщений из 5, страница 1 из 1
28.05.2009, 15:52
    #36013684
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование val(thisfrom.text1.value) в операциях insert/update/delete
Всем привет!
Столкнулся с таким фокусом (может фокс вобще не от слова лиса, а от слова фокус?).
Есть форма, на ней текстбокс thisform.text1
Делаю следующее:

Код: plaintext
1.
2.
3.
4.
create cursor my_cur (a int)

insert into  my_cur (a) values(val(thisform.text1.value))  && - работает
delete from my_cur where a = val(thisform.text1.value))  && - работает
update my_cur set a = = val(thisform.text1.value))  where a =  5   && - не работает!!!

при update фокс ругается что не найден alias text1

Почему оно так странно себя ведет и как бороться???
...
Рейтинг: 0 / 0
28.05.2009, 16:03
    #36013734
Использование val(thisfrom.text1.value) в операциях insert/update/delete
Imperousupdate my_cur set a = = val(thisform.text1.value)) where a = 5 && - не работает!!!Для начала - два знака равно подряд - операция сравнения, а никак не присваивание.
...
Рейтинг: 0 / 0
28.05.2009, 16:14
    #36013794
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование val(thisfrom.text1.value) в операциях insert/update/delete
Внутри команд Select-SQL не всегда возможно указывать ссылки на объекты форм. В определенных местах синтаксический анализатор пытается выделить конструкцию ИмяТаблицы.ИмяПоля. Когда он видит более сложную конструкцию, то воспринимает ее как синтаксически не корректную

Чтобы не мучится вопросом, где можно, а где нельзя, лучше предварительно записывать значение из свойств формы в переменные памяти

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
LOCAL lnValue
lnValue = val(thisform.text1.value))  

create cursor my_cur (a int)

insert into  my_cur (a) values (m.lnValue)  
delete from my_cur where a = m.lnValue 
update my_cur set a = m.lnValue where a =  5  
...
Рейтинг: 0 / 0
28.05.2009, 16:59
    #36013928
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование val(thisfrom.text1.value) в операциях insert/update/delete
проходящий.Imperousupdate my_cur set a = = val(thisform.text1.value)) where a = 5 && - не работает!!!Для начала - два знака равно подряд - операция сравнения, а никак не присваивание.
да, это я тут лажанулся, в оригинале один знак.

то что присвоить значение переменной можно это я знаю, я хотел напрямую, без присваиваний..
...
Рейтинг: 0 / 0
28.05.2009, 17:26
    #36014004
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование val(thisfrom.text1.value) в операциях insert/update/delete
2 Imperous

я неоднократно пишу о культуре разработки в фокспро

совет:
перед выполнением команд SQL необходимо объявить локальные переменные
и использовать уже эти переменные в команде SQL

это дает возможность легко находить ош-ки при работе с отладчиком
+ более читабельный текст
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Использование val(thisfrom.text1.value) в операциях insert/update/delete / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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