powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как записать select
24 сообщений из 24, страница 1 из 1
Как записать select
    #37286539
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть VFP9, форма, грид, recordsourcetype 4-sql statemen, recordsource выражение
SELECT S_rab.sr_kr,S_rab.sr_naim,a.nr_kol,a.nr_st from (SELECT nar_r.sr_id,SUM(nar_r.nr_kol) as nr_kol,SUM(nar_r.nr_st) as nr_st FROM nar_r WHERE nar_r.nf_id in (SELECT nar_f.nf_id from nar_f WHERE nar_f.nh_id=1) GROUP BY nar_r.sr_id) a LEFT OUTER JOIN s_rab ON a.sr_id = S_rab.sr_id INTO CURSOR csr,
Но он видать больше 254 знаков и поэтому в recordsource не записывается, как-то можно его туда записать, с помощью каких-нибудь подстановок функций и т.д...
...
Рейтинг: 0 / 0
Как записать select
    #37286553
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще-то должен, но можно проще:

THISFORM.Ваш грид.RecordSource=""

THISFORM.Ваш грид.RecordSourceType= 1
THISFORM.Ваш грид.RecordSource="scr"
...
Рейтинг: 0 / 0
Как записать select
    #37286560
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но это проблем не вызывает..
LOCAL lctmpalias AS STRING
WITH THIS.page4.grid1
lctmpalias=.RECORDSOURCE
.RECORDSOURCE=""
.RECORDSOURCE=lctmpalias
.REFRESH
.SETFOCUS
ENDWITH
Проблема в том, что пользуясь Form Disigner, и открывая properties грида, где recordsource(там ещё такая кнопка с лупой нарисована-Zoom recordsource), вставляю туда код, нажимаю Ok, всё нормально, как только нажимаю сохоранить форму, код из recordsource становится каким был предыдущий(если пустой, то обнуляется, если был записан select до 250 знаков, то он восстанавливается...)
...
Рейтинг: 0 / 0
Как записать select
    #37286572
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не пользуюсь конструктором. :)
У меня в Ините формы вызывается метод, допустим create_cur
В нем явно прописываю:

THISFORM.Ваш грид.recordsource=""
THISFORM.Ваш грид.recordsource=[SELECT список полей FROM таблица WHERE условие отбора INTO CURSOR csr]

Проверено - ограничений никаких нет.
...
Рейтинг: 0 / 0
Как записать select
    #37286587
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаю, перенёс в инит формы та же фигня

.RECORDSOURCE=[SELECT S_rab.sr_kr,S_rab.sr_naim,a.nr_kol,a.nr_st from (SELECT nar_r.sr_id,SUM(nar_r.nr_kol) as nr_kol,SUM(nar_r.nr_st) as nr_st FROM nar_r WHERE nar_r.nf_id in (SELECT nar_f.nf_id from nar_f WHERE nar_f.nh_id=1) GROUP BY nar_r.sr_id) a LEFT OUTER JOIN s_rab ON a.sr_id = S_rab.sr_id INTO CURSOR csr]
как только закрываю окно инит, ошибка... урезаю селект

.RECORDSOURCE=[SELECT nar_r.sr_id,SUM(nar_r.nr_kol) as nr_kol,SUM(nar_r.nr_st) as nr_st FROM nar_r WHERE nar_r.nf_id in (SELECT nar_f.nf_id from nar_f WHERE nar_f.nh_id=1) GROUP BY nar_r.sr_id INTO CURSOR csr]
записывает...
...
Рейтинг: 0 / 0
Как записать select
    #37286593
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какую ошибку выдает?
...
Рейтинг: 0 / 0
Как записать select
    #37286634
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
text to .RECORDSOURCE noshow pretext  15 
   SELECT S_rab.sr_kr
             ,S_rab.sr_naim
             ,a.nr_kol
             ,a.nr_st 
         from (SELECT nar_r.sr_id
                          ,SUM(nar_r.nr_kol) as nr_kol
                          ,SUM(nar_r.nr_st) as nr_st 
                     FROM nar_r 
                     WHERE nar_r.nf_id in (SELECT nar_f.nf_id 
                                                      from nar_f WHERE nar_f.nh_id= 1 ) 
                                                      GROUP BY nar_r.sr_id) a 
               LEFT OUTER JOIN s_rab ON a.sr_id = S_rab.sr_id 
         INTO CURSOR csr
endtext
...
Рейтинг: 0 / 0
Как записать select
    #37286638
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
научитесь писать по-человечьи

вот, - сразу стала видна лишняя скобка в строке

from nar_f WHERE nar_f.nh_id=1)
...
Рейтинг: 0 / 0
Как записать select
    #37286654
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1,
вариант 4-sql stmt Вы увидели, а вариант 3-Query(.qpr) куда дели? Или Вы принципиально не используете то, что по каким-то причинам не понадобилось другим? Пробивать стены лбом привычнее?
...
Рейтинг: 0 / 0
Как записать select
    #37286693
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимо,

Постараюсь, но прежде чем подставлять sql выражение, я его проверяю в коммандной строке, а скобка... не знаю, лишняя ли она, я убираю, сразу же редактор подчёркивает, типа ошибка, все скобки вроде бы нормально и select выдавал результат...
...
Рейтинг: 0 / 0
Как записать select
    #37286711
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,

А какая разница между 4(SQL stmt) и 3(qure) вариантом, что тот выбирал, что другой, дизайнер формы, всё равно не пропускает длинные выражения в recordsource ...
Не знаю может в макрос записать его, а этот макрос в recordsource..
...
Рейтинг: 0 / 0
Как записать select
    #37287001
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1Sergey Sizov,

А какая разница между 4(SQL stmt) и 3(qure) вариантом, что тот выбирал, что другой, дизайнер формы, всё равно не пропускает длинные выражения в recordsource ...
Не знаю может в макрос записать его, а этот макрос в recordsource..А подумать не пробовали? А почитать в хелпе? Как я понял, Вы совершенно не знаете про наличие файлов типа QPR и понятия не имеет о их назначении? Так может ликвидировать пробел в знаниях?
...
Рейтинг: 0 / 0
Как записать select
    #37287037
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,

могу ответить, что не всё знаю, и не верю кто говорит, что всё знает...это вопрос дискуссионый, (знаю-не знаю, ничего не знаю...), но если эти qwery файлы решают проблему, то почему бы не сказать, как...но тему надо закрывать, проблему обошёл, не так как хотелось бы...но уже не актуально...
...
Рейтинг: 0 / 0
Как записать select
    #37287123
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1Sergey Sizov,

могу ответить, что не всё знаю, и не верю кто говорит, что всё знает...это вопрос дискуссионый, (знаю-не знаю, ничего не знаю...), но если эти qwery файлы решают проблему, то почему бы не сказать, как...но тему надо закрывать, проблему обошёл, не так как хотелось бы...но уже не актуально...А можно узнать, почему так вот хочется именно готовый ответ, а не направление поисков? Самом то что-нибудь сделать никак? Кто-то должен разжевать и готовенькое в рот положить? В хелпе все уже написано. На кой ляд мне тут распинаться и писать это же самое еще раз? Ради кого? Ради лентяя, который не может одну страничку прочитать?
...
Рейтинг: 0 / 0
Как записать select
    #37287148
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizovq1w1e1Sergey Sizov,

могу ответить, что не всё знаю, и не верю кто говорит, что всё знает...это вопрос дискуссионый, (знаю-не знаю, ничего не знаю...), но если эти qwery файлы решают проблему, то почему бы не сказать, как...но тему надо закрывать, проблему обошёл, не так как хотелось бы...но уже не актуально...А можно узнать, почему так вот хочется именно готовый ответ, а не направление поисков? Самом то что-нибудь сделать никак? Кто-то должен разжевать и готовенькое в рот положить? В хелпе все уже написано. На кой ляд мне тут распинаться и писать это же самое еще раз? Ради кого? Ради лентяя, который не может одну страничку прочитать?

фоксклаб людей портит
...
Рейтинг: 0 / 0
Как записать select
    #37287167
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то не охота пикироваться...априори, 1. всё знать невозможно, 2. всё уже когда либо сказано и написано, 3. надо искать, когда, где и почём.... Поэтому задаётся вопрос тем, кто уже сталкивался с проблемой и отвечать не лень по разным причинам(в первый раз отвечает, просто есть желание ответить и т.д.). Возникла проблема, на своём делетанском уровне я постарался её решить, всё... проблем нет... спасибо за ответы...
...
Рейтинг: 0 / 0
Как записать select
    #37287179
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1Как-то не охота пикироваться...априори, 1. всё знать невозможно,А об этом кроме Вас кто-то что-то где-то писал/говорил? 2. всё уже когда либо сказано и написано,То это Вы знаете, но пользоваться этим не хотите? 3. надо искать, когда, где и почём....А ведь лень. Поэтому задаётся вопрос тем, кто уже сталкивался с проблемой и отвечать не лень по разным причинам(в первый раз отвечает, просто есть желание ответить и т.д.).Вам не ответили? Или Вам не нравиться форма ответа? Не совсем готовенькое выдали? Возникла проблема, на своём делетанском уровне я постарался её решить, всё... проблем нет...Это Вам только кажется. Как дилетанту.
...
Рейтинг: 0 / 0
Как записать select
    #37287231
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Действительно, есть ограничение конструктора. Он не может сохранять более 254 символов вне зависимости от того, пользовались кнопкой Zoom или нет

2. Это ограничение только и исключительно дизайнера. Программно можно ввести символьную строку, длиной до 8`192 символов - это ограничение на длину одной команды в FoxPro. В данном случае - команда присвоения значения.

3. Вы сделали распространенную ошибку перепутав символьную константу и символьную переменную. Символьноая константа (то, что записано между парными кавычками) не может иметь длину более 254 символов. А вот символьная переменная может содержать в себе тест размером до 16МБ

В чем разница между символьной константой и символьной переменной проще объяснить на примере

Код: plaintext
lcVar = "Начало строки" + "Окончание строки"

Так вот, в этом примере то, что записано в кавычках - это 2 символьные константы. А lcVar - это символьная переменная

Для удобства записи длинного текста в символьную переменную проще воспользоваться текстовыми скобками TEXT...ENDTEXT. В данном случае примерно так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Local lcStringSQL
Text to lcStringSQL noshow pretext  1 + 2 + 4 + 8 
SELECT 
	S_rab.sr_kr,
	S_rab.sr_naim,
	a.nr_kol,
	a.nr_st 
from (	SELECT 
		nar_r.sr_id,
		SUM(nar_r.nr_kol) as nr_kol,
		SUM(nar_r.nr_st) as nr_st 
	FROM nar_r 
	WHERE nar_r.nf_id in (SELECT nar_f.nf_id from nar_f WHERE nar_f.nh_id= 1 ) 
	GROUP BY nar_r.sr_id
	) a 
LEFT OUTER JOIN s_rab ON a.sr_id = S_rab.sr_id 
INTO CURSOR csr
EndText


ThisForm.Grid1.RecordSource = m.lcStringSQL
...
Рейтинг: 0 / 0
Как записать select
    #37288503
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,

Спасибо, осталось выяснить, где в конструкторе(или ещё где, это же выражение не запишишь в Zoom recordsource) записать эту символьную переменную (lcStringSQL); как вариант вроде создать метод и там прописать эту символьную переменную, или есть более правильные варианты?
...
Рейтинг: 0 / 0
Как записать select
    #37288504
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимо,

кого и портит(развивается высокомерие....), а насколько я знаю своей взаимовыручкой, больше привлекает....
...
Рейтинг: 0 / 0
Как записать select
    #37288506
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,

спасибо, переписал всё в инит формы... :-)
...
Рейтинг: 0 / 0
Как записать select
    #37288737
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1прошелмимо,

кого и портит(развивается высокомерие....), а насколько я знаю своей взаимовыручкой, больше привлекает....


угумс.

обратите внимание на курсорадаптер.

писать запрос в св-во грида - дурдом.
...
Рейтинг: 0 / 0
Как записать select
    #37289284
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимо,

о вкусах не спорят... а по поводу курсорадаптера... я тоже знаю кун фу, каратэ, айкидо и другие страшные слова...:-)
...
Рейтинг: 0 / 0
Как записать select
    #37289374
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1прошелмимо,

о вкусах не спорят... а по поводу курсорадаптера... я тоже знаю кун фу, каратэ, айкидо и другие страшные слова...:-)

не зарывайтесь, я не только знаю, но и владею
показательным ударом учи маваши.
(занимался киокушином).

у Вас дурные вкусы и действительно сами пытаетесь нажить проблем.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как записать select
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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