powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопросы по формированию условий запроса SELECT
25 сообщений из 30, страница 1 из 2
Вопросы по формированию условий запроса SELECT
    #33395925
genek84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1.

У меня в Textbox записывается значение функции Date()
При подстановке в запрос значение поля почемуто имеет тип дата_время (dd/mm/yyyy 12:0:0 AM) в символьном виде.
Как получить из Textbox сразу дату в символьном виде ("dd/mm/yyyy") - сейчас я перевожу все в дату_время, потом в дату, а потом все в строку, как все это осуществить проще?

2.

При формировании условий Select WHERE. условия предварительно записываются в некую переменную
Select .......... WHERE &condition .........
Как поступить если условия нет и как это проанализировать
Пробовал функцию, но даже так на ложном условии ругается
IIF(condition='', &condition, &condition), а если условие condition='' истинно то все выполняется?
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33395934
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. Там где "делаете" condition
Код: plaintext
condition = iif(empty(condition),'1=1',condition) 
или сразу вставить все это в IIF:

Код: plaintext
Select .......... WHERE IIF(EMPTY(condit),'1=2',&condit) 
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33396406
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Sergey Ch
У меня вопрос в этом же направлении, только связан с командой replace.

replace name_list1 with iif(empty(rep_sz1),'',&rep_sz1) , name_list2 with iif(empty(rep_sz2),'',&rep_sz2)

name_list1 и name_list2 - мемо поля. если условия выполняються то все ок, если нет то вылетает ошибка 'Missing expression.' Как это исправить?
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33396449
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. А в какой момент вы подставляете значение Date() в текстбокс? Если в Form Designer в свойство Value текстбоксу написать Date(), то оно будет
а. Иметь тип Date
б. Быть равным текущей дате :)
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33396493
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 karly™
ниче небудет. только надпись будет "date()"

2 genek84
в текстбоксе пропишите контролсоурс. и в init форме например пишите имя контроллсоурс aa=date()

далее d=dtoc(aa). и все. Да чуть не забыл. в inite не забыть указать какой тип даты. в данном случае прописывать set date to british
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397185
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если написать =Date(), то будет то, что надо :)

И еще стоит обратить внимание на свойства
DateFormat
DateMark
Century
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397282
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, согласен. А как зделать так чтоб год вводился только 2-я цифрами и показывался 2-я?
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397406
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недоходящийда, согласен. А как зделать так чтоб год вводился только 2-я цифрами и показывался 2-я?
См. Help SET CENTURY Command
SET CENTURY OFF && 2-я
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397452
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир СА
я знаю эту команду. и уже так делал. но все равно 4-е цифры года выводяться вместо 2-х послежних
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397472
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недоходящий...я знаю эту команду. и уже так делал. но все равно 4-е цифры года выводяться вместо 2-х послежних
Поподробнее, где, при каких условиях??? Может я чего-то упустил.
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397516
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир СА
создал на форме текстбокс и в валюе прописал "=datre()". и в нем показываеться год состоящий из 4-х цифр. а вот как зделать чтоб показывались две последние? например : 2005 -> 05. и ввод в текстбоксе позволял вводить только две последние цифры
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397594
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недоходящий2 Владимир СА
создал на форме текстбокс и в валюе прописал "=datre()". и в нем показываеться год состоящий из 4-х цифр. а вот как зделать чтоб показывались две последние? например : 2005 -> 05. и ввод в текстбоксе позволял вводить только две последние цифры
В Comand окне:
SET CENTURY OFF
Через Builder создает TextBox:
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397625
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо. вопросов на эту тему нет. кроме вот этого который я ранше задавал:

У меня вопрос в этом же направлении, только связан с командой replace.

replace name_list1 with iif(empty(rep_sz1),'',&rep_sz1) , name_list2 with iif(empty(rep_sz2),'',&rep_sz2)

name_list1 и name_list2 - мемо поля. если условия выполняються то все ок, если нет то вылетает ошибка 'Missing expression.' Как это исправить?
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397663
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недоходящий...У меня вопрос в этом же направлении, только связан с командой replace.
Код: plaintext
replace name_list1 with iif(empty(rep_sz1),'',&rep_sz1) , name_list2 with iif(empty(rep_sz2),'',&rep_sz2)
name_list1 и name_list2 - мемо поля. если условия выполняються то все ок, если нет то вылетает ошибка 'Missing expression.' Как это исправить?
А у тебя таблица случайно непустая???
EOF() - какое значение выдает???
Или маркер в таблице стоит за последней записью???
И почему используешь & - амперсанд???
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397665
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я же писал. У текстбокса есть свойство Century. Оно перекрывает текущие установки Set Century.
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33397949
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир СА

таблица может быть пустой, а может быть и заполненной. Я использую
go bottom
append blank
а потом replace

в переменную rep_sz1 заноситься строка с chr(13). и после заполнения я исполняю ее для мемо. и проблема в том что если переменная пуста, то в мемо ниче загонять не надо и в этот момент фокс ругаеться.

что за маркер???
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33398844
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

Макро тут совершенно ни к чему REPLACE ... WITH EVALUATE(твоя_строка)
Или прямо там где она формируется сделать один раз EVALUATE() и всё.
Вообще для того чтобы добавить переносы не нужно ни макро, ни EVALUATE -
просто пишется lcMemo = "что-то" + CHR(13)+CHR(10)+"ещё что-то". Зачем всё
усложнять?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33402254
genek84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поче же всетаки
Select .......... WHERE IIF(EMPTY(condition), &condition1, &condition2) если условие c истинно то все выполняется,
а если ложно то вылетает с ошибкой (неверное выражение)?
Условие подставлял любое.
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33402262
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genek84Поче же всетаки
Select .......... WHERE IIF(EMPTY(condition), &condition1, &condition2) если условие c истинно то все выполняется,
а если ложно то вылетает с ошибкой (неверное выражение)?
Условие подставлял любое.
Я же Вам написал ответ выше:
Код: plaintext
1.
2.
3.
condition1 = iif(empty(condition1),'1=1',condition1) 
condition2 = iif(empty(condition2),'1=1',condition2)
и т.д. ...

То есть на Вас лежит ответственность, чтобы любые условия были завершены и правильны с точки зрения синтаксиса FoxPro... Для этого все проверяете и только потом уже вставляете их в SELECT...
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33402363
genek84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Foxpro ругается на строчке '1=1'
Зачем это?
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33402718
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Igor Korolyov

>> lcMemo = "что-то" + CHR(13)+CHR(10)+"ещё что-то"
это можно использовать если строку ненадо все время дополнять. а если через for ? тогда здесь симвальная переменная набирает объем, и если CHR(13)+CHR(10) не добовлять в эту переменную как строку, то будет занесено только последнее значение.
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33403080
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genek84Foxpro ругается на строчке '1=1'
Зачем это?
Как Вы писали - условие может быть или не быть... Если оно отсутствует, то при автоматическом формировании условия надо что-то подствить вместо условия (если нужно иситна, то я подставляю 1=1 если наоборот то 1=2)...

Проверьте весь запрос на синтаксис...

конструкция WHERE iif(empty(condition),'1=1',condition) - работет...
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33404676
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE CURSOR tmp1 (cMemo M)
APPEND BLANK
lc1 = ""
FOR ln1 =  1  TO  10000 
    lc1 = m.lc1 + "строка " + TRANSFORM(m.ln1) + CHR( 13 )+CHR( 10 )
ENDFOR
REPLACE cMemo WITH m.lc1

Твой вариант с макро естественно не будет работать при столь длинной строке
(даже 1000 создаваемых в цикле "строк" уже всё сломает) - т.к. ограничение
на длину команды (в том числе и команду с макро-вставкой) составляет 8Кб.
Ограничение же на строковую переменную получаемую вышеописанным образом -
16Мб. И от числа CHR(13)+CHR(10) внутри неё это никак не зависит - да хоть
вся она будет состоять только из CRLF - без разницы.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33405102
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Igor Korolyov
ага. теперь ясно буду переделывать по Вашему примеру
...
Рейтинг: 0 / 0
Вопросы по формированию условий запроса SELECT
    #33405196
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю что макроподстановкой лудше не пользоваться. Ну покрайней мере избегать их повозможности. Да? Если да то почему они такие страшные. Объясните плиз!
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопросы по формированию условий запроса SELECT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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