Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Поясняю. Получил две выходных таблицы. Выполнил команду LIST STRUCTURE, и разместил в два столбика результаты. Результаты абсолютно идентичны, то есть имеются две точные копии структуры выходных таблиц - по именам полей, по их расположению, по типу и размеру. То есть абсолютно идентичная структура. А вот способ формирования некоторых полей разный. В первом запросе (с одним UNION) одно из полей формируется реальным значением из входных таблиц, а во втором запросе формируется "пустышкой" spac(30) as nkod3 Вот такое различие есть. При случае проверю запрос с 2 UNION на VFP 9. Вообще формирование этих запросов - это 1% от того, что надо сделать, а я на это потратил 2 дня, что, вообще говоря, непозволительная роскошь. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Немного поменялось. Вот что я в свое время вставил в Help FPD 2.6, когда переводил его: Цитата: Но это количество (50) при вызове процедуры командой DO ... WITH, а при вызове ее как функции максимальное количество было 25 или 26 (недавно я писал в какой-то теме точное количество, но сейчас не помню). А в VFP написано про 26 параметров, но как функцию можно вызывать с 27-ю. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
По ходу, причина выяснилась - пошлая до безобразия.
Решил для начала откомпилировать подпрограмму, выполняющую запрос. Оказалось, что "Compiled code for this line too long". Что характерно, сам FPD при запуске модуля ничего такого не сообщал (а должен был!), а выдавал правдоподобно сообщение об отсутствии какой-то колонки. Это сообщение и сбивало с толку. Какая Мораль? Не верьте фоксу - мало ли что он пишет про ошибки. Если что-то "не так работает" - проверьте ошибки компиляции, "и будет щастье". |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Любопытно, что компиляция всё равно выполняется. Проверил при помощи refox, что же там откомпилировалось. Оказалось, что откомпилированы первые 1024 символа. Получился обрезанный "на полуслове" SQL-запрос. Такие дела...
Исправлено 1 раз(а). Последнее : Simple777, 27.05.20 09:03 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Вообще довольно странная ситуация. Проверил рефоксом, как откомпилировался модуль с двумя отдельными запросами (комплируется без ошибок). Оказалось, что первый запрос (с одним UNION) имеет длину 1429 символов, и комплируется без проблем.
Да и вааще, насколько мне известно, ограничения на длину компилируемой строки значительно больше 1024 символов. Исправлено 2 раз(а). Последнее : Simple777, 27.05.20 09:16 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Без проблем я когда-то в FPD делал запросы и с 12-ю UNION (для годовой выборки). По поводу же "длины" - ну у тебя же там и куча "излишеств всяких нехороших" (с точки зрения FPD). В частности во FROM обычно в FPD для имени алиаса я вообще использовал одну (ну две, это от силы) букву. Типа: FROM sour1 s1, sour3 s3, и везде вместо sour1 и sour3 - эти подстановки спереди:
Хотя, мне кажется, у тебя где-то не там проблемы. Просто разобраться надо. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 1 раз(а). Последнее : Crispy, 27.05.20 10:58 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Просто у меня отнюдь не бухгалтерия. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Консерватория что ли? Ну значит в ней проблемы. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Вот как ты представляешь себе замену имён таблиц на однобуквенные имена в SQL-запросе? Ведь в SQL-запросе указываются не алиасы, а именно имена таблиц.
|
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
В SQL-запросе таки можно использовать свои собственные алиасы, задаваемые при указании используемых таблиц. Они никакого отношения ко всем "внешним" не имеют. Т.е. можно там писать a,b,с и т.д. - и они будут работать только внутри запроса. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Не надо путать алиасы рабочих областей и локальные алиасы в запросах. Они никак не пересекаются и никак друг на друга не влияют. ------------------ Лень - это неосознанная мудрость. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Впервые слышу о локальных алиасах в запросах. А можно небольшой пример на базе того запроса, что я тут уже приводил?
|
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Вроде понял. Криспа же написал.
Только не помню, чтобы где-то было написано про локальные алиасы в запросе. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Оказывается, в Help про локальные алиасы есть.
Когда-то давным-давно разбирался, и не придал значения этим алиасам, видать. Бывает... Исправлено 1 раз(а). Последнее : Simple777, 27.05.20 12:32 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Для SQL-запроса действует правило: "Все свое ношу с собой" ("Все свое уношу с собой"). Пришел, понаоткрывал, понаиндексировал, понаотсортировал, понавыбирал. А потом ушел - и ничего не оставил. Ну кроме результата запроса. И при этом, как будто его и не было. Ничего не испортил. Даже записи нигде не сдвинул с места. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
А если даже алиасы не помогут кардинально сократить запрос, то макроподстановка точно поможет.
------------------ |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Что-то припоминаю, что с макроподстановкой в SQL-запросах были какие-то заморочки. Вроде как в ехе FPD 2.6 они не канают.
Исправлено 1 раз(а). Последнее : Simple777, 27.05.20 21:09 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Построить SQL-выражение при помощи макросов ничего не мешает, как и при построении любых других выражений. Даже "современные" диалекты SQL пошли навстречу, с предикатом "WITH"
Доб. А может это не "предикат", я не знаю, вобщем эта фигня "WITH" навроде макроса в SQL-выражении, или подзапрос, обозначенный именем, и многократно (или единожды, или ни разу) примененный в выражении. Если чё, то это ИК научил этому WITH. Говорит, что это у тебя макрос на макросе в выражении запроса, для этого есть WITH. Сам то он где-то в скрижалях вычитал, вероятно... Исправлено 5 раз(а). Последнее : of63, 27.05.20 21:41 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Наверное, это только для VFP.
Исправлено 1 раз(а). Последнее : Simple777, 27.05.20 21:41 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Нет, и не для VFP. Для T-SQL какого-то, ИК на Оракле, значит там это есть. даже Коровка использует, наверное
Но это не суть. Фоксовое выражение, VFP-шное или FPD-шное, можно строить из макросов, в т.ч и SQL-оператор. Почему нет? |
© 2000-2024 Fox Club  |