Максимальная длина строки

Иухенио
Дата: 12.11.2012 12:48:40
В программе формируются символьная строка, хранящая SQL-запрос. Подскажите пожалуйста, какова максимальная длина строки ? саму строку храню в переменной.
Dima T
Дата: 12.11.2012 12:55:47
В переменную пара мегабайт точно влазит, какой предел даже не скажу. Для SQL-запроса точно хватит.
Если так формируешь:
lcQuery = "select ... "

то "select ... " максимум 254 символа то что в кавычках. Обходится ограничение так
lcQuery = "select" + " ... "
tanglir
Дата: 12.11.2012 12:56:54
Иухенио,

Maximum # of characters per character string or memory variable. 16,777,184

Кстати, max_allowed_packet тоже 16 метров по умолчанию. Вы лучше всё-таки ответьте (в исходной теме), как вы определили, что ошибка возникает именно из-за слишком длинной строки? и текст ошибки приведите.
Иухенио
Дата: 12.11.2012 12:58:10
Да я вот вторым способом и пользуюсь, просто пытаюсь выяснить чем ограничивается длина запроса: Fox'ом, драйвером ODBC или MYSQL.
tanglir
Дата: 12.11.2012 12:58:39
Хотя... не вы ли недавно тут выкладывали монстрика с макроподстановками? Тогда, возможно, дело в том, что
Maximum # of characters per macro substituted line. 8,192
tanglir
Дата: 12.11.2012 12:59:26
Иухенио
просто пытаюсь выяснить чем ограничивается длина запроса: Fox'ом, драйвером ODBC или MYSQL.
всеми
только вопрос в том, кто всё-таки выдал ошибку (и какую именно)
Иухенио
Дата: 12.11.2012 13:01:09
Ошибки нет, просто при выполнении слишком большого запроса SQLEXEC() возвращает -1. Где то в инете видел что такое может быть из-за того что запрос слишком большой. И если ни Fox, ни MySQL не ограничивает, то скорее всего это ограничение в ODBC-драйвера.
Иухенио
Дата: 12.11.2012 13:02:44
Нет, с ошибкой при выполнении больших запросов столкнулся без макро подстановок.
tanglir
Дата: 12.11.2012 13:02:50
Иухенио
Ошибки нет, просто при выполнении слишком большого запроса SQLEXEC() возвращает -1.
RTFM про AERROR()
Потом - второй элемент массива в студию.
Dima T
Дата: 12.11.2012 13:03:38
Иухенио
Ошибки нет, просто при выполнении слишком большого запроса SQLEXEC() возвращает -1. Где то в инете видел что такое может быть из-за того что запрос слишком большой. И если ни Fox, ни MySQL не ограничивает, то скорее всего это ограничение в ODBC-драйвера.

Как-то я натыкался на такое ограничение. 8192 кажется. Проверь размер запроса. Сохрани его в файл например. Может ошибка просто в запросе.
Какую ошибку AERROR() возвращает?