Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как записать select / 24 сообщений из 24, страница 1 из 1
31.05.2011, 07:06
    #37286539
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
Есть 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
31.05.2011, 07:48
    #37286553
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
Вообще-то должен, но можно проще:

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

THISFORM.Ваш грид.RecordSourceType= 1
THISFORM.Ваш грид.RecordSource="scr"
...
Рейтинг: 0 / 0
31.05.2011, 08:14
    #37286560
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
Спасибо, но это проблем не вызывает..
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
31.05.2011, 08:27
    #37286572
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
Я не пользуюсь конструктором. :)
У меня в Ините формы вызывается метод, допустим create_cur
В нем явно прописываю:

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

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

.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
31.05.2011, 09:04
    #37286593
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
Какую ошибку выдает?
...
Рейтинг: 0 / 0
31.05.2011, 09:50
    #37286634
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
Код: 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
31.05.2011, 09:52
    #37286638
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
научитесь писать по-человечьи

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

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

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

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

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

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

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

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

фоксклаб людей портит
...
Рейтинг: 0 / 0
31.05.2011, 13:38
    #37287167
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
Как-то не охота пикироваться...априори, 1. всё знать невозможно, 2. всё уже когда либо сказано и написано, 3. надо искать, когда, где и почём.... Поэтому задаётся вопрос тем, кто уже сталкивался с проблемой и отвечать не лень по разным причинам(в первый раз отвечает, просто есть желание ответить и т.д.). Возникла проблема, на своём делетанском уровне я постарался её решить, всё... проблем нет... спасибо за ответы...
...
Рейтинг: 0 / 0
31.05.2011, 13:44
    #37287179
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
q1w1e1Как-то не охота пикироваться...априори, 1. всё знать невозможно,А об этом кроме Вас кто-то что-то где-то писал/говорил? 2. всё уже когда либо сказано и написано,То это Вы знаете, но пользоваться этим не хотите? 3. надо искать, когда, где и почём....А ведь лень. Поэтому задаётся вопрос тем, кто уже сталкивался с проблемой и отвечать не лень по разным причинам(в первый раз отвечает, просто есть желание ответить и т.д.).Вам не ответили? Или Вам не нравиться форма ответа? Не совсем готовенькое выдали? Возникла проблема, на своём делетанском уровне я постарался её решить, всё... проблем нет...Это Вам только кажется. Как дилетанту.
...
Рейтинг: 0 / 0
31.05.2011, 14:02
    #37287231
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
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
01.06.2011, 04:58
    #37288503
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать select
ВладимирМ,

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

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

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

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


угумс.

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

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

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

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

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

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


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