Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Разве здесь речь не об исходной длине строки команды? Цитата:Ты же не говоришь, чему она была равна до добавления полей. Может, она и так была на пределе. Исправлено 1 раз(а). Последнее : akvvohinc, 31.05.20 19:49 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Длина строки SQL-запроса была значительно меньше - примерно 2500 символов.
Видимо, для запросов действуют другие ограничения. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Да, была на пределе. Но почему такой маленький этот предел - вот в чем вопрос. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Я забыл, что ты работаешь в FPD, для которого другие ограничения (2,048). Но тогда все верно, а твой вопрос - к разработчикам. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Вот всё и разъяснилось.
|
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
На самом деле там не совсем чисто с этими ограничениями... Есть ограничение как на размер исходной строки команды, так и на размер откомпилированной команды. При этом они реально чуть-чуть отличаются от документированного числа в 8192 символов/байт.
При этом из исходного кода при компиляции убираются переводы строки, ведущие пробелы/табуляции (отступы форматирования) поэтому чисто физически файл с одной единственной командой (даже не считая комментариев) может занимать и больше 8Кб. ------------------ WBR, Igor |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
А чему равен максимальный размер откомпилированной команды, и где об этом написано? Или он просто определяется размером поля, хранящего длину команды в FXP? Исправлено 1 раз(а). Последнее : akvvohinc, 01.06.20 06:44 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Bероятно, об этом может знать аффтар Defoxa.
|
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Я ж говорю, оба размера примерно равны 8к. На откомпилированный код на 4 байта больше (2 байта из которых под размер уходят), на исходный - на 3-4 байта меньше Видимо там буфер какой-то 8К при компиляции используется.
Нигде про это не написано, и не факт что в разных версиях будет абсолютно идентично. Да и кому до этого есть дело - не будешь же ты выверять до 1 символа размер команды, чтобы потом предъявлять претензию что авторы фокса обманули Поэтому всем и всегда будет вполне достаточно написанного в VFP system capacities - размер одной команды 8К. Кстати, иногда при попытке откомпилить превышающую предел команду выдаётся не ошибка 18 "Line is too long", а Error 1252 "Compiled code for this line is too long". А иногда и вовсе Error 1309 "file" is not an object file (это когда компиляция "молча" обламывается и на выходе получается невалидный fxp) Ну и нюанс с переводами строк/отступами. Вот этот код генерирует prg размером ~9Мб - и это всего одна единственая команда Код компилируется и работает в крайней версии VFP9.
------------------ WBR, Igor |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Обнаружил любопытную особенность в SQL-запросах.
В приведённом мной примере запроса понадобилось добавить в выходную таблицу числовую "пустышку" определённой разрядности. Допустим, надо добавить поле KOLM формата N(11,6). Для символьных "пустышек" всё очевидно. Напнимер, для поля формата C(30) пишем : ..., SPACE(30) AS MYFIELD Оказывается, для числовой "пустышки" с определённой разрядностью можно записать так: ..., 00000.000000 AS KOLM При этом формируется "чистенькое поле" нужного формата, то есть в данном случае формата N(11,6) Исправлено 1 раз(а). Последнее : Simple777, 04.06.20 15:54 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
О, сколько нам открытий чудных готовит просвещенья дух...
Любят некоторые Америки заново открывать... ------------------ Лень - это неосознанная мудрость. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Пример абсолютно не корректен. Пробелы в начале строки, являющейся продолжением предыдущей, компилятор просто игнорирует. А это и есть 9мб. В итоге fxp всего 191 байт. Если заполнить реальной строкой без ведущих пробелов, то ошибка длины строки как раз как в хелпе. (8160-8900, точнее лень смотреть).
Исправлено 1 раз(а). Последнее : Taran, 05.06.20 02:02 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Simple777 Автор Сообщений: 33855 Дата регистрации: 05.11.2006 |
Лучше уш открывать, чем закрывать. youtube.com |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Ты ошибаешься. Этот пример показывает ограничение на размер исходной команды, размер которой включает те пробелы в начале строки. То есть в размер команды включаются все символы от начала строки до его конца (в том числе начальные и конечные пробелы, причем, даже те, что окажутся после ";"). Исправлено 4 раз(а). Последнее : akvvohinc, 05.06.20 03:05 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Опять двадцать пять.
Команда это одна строка без продолжения на следующей. Перед компиляцией фокс откинет комменты в конце строки, если есть продолжение, то он объединит все в одну строку, отбросив незначащие пробелы. И когда останется одна цельная строка попытается компилировать. Именно одна цельная строка. Так сказано в хелпе и я это подтверждаю и доказываю примером. А ты голословно свистишь и заявляншь что я ошибаюсь. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Я думал ты сам в состоянии немного увеличить команду (одну единственную) в примере Игоря, чтобы получить ошибку. Цитата: И здесь ты ошибаешься - команда - это не строка, а именно команда. Исправлено 1 раз(а). Последнее : akvvohinc, 05.06.20 03:10 |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Опять абстрактная "одна единственная". Ты можешь просто и конкретно указать, чтоб было о чем говорить? |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Откинет, если раньше не свалится по "Line too long" (с учетом длины этих комментов). |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Могу. Например, увеличь в первом #DEFINE число на 1. |
Re: SQL-запрос из нескольких таблиц FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Тогда как бы ты объяснил, что эта программа валится как при увеличении SPACE_END, так и SPACE_BEG, при неизменном количестве строк? Что изменилось для компилятора?
|
© 2000-2024 Fox Club  |