powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP+Sybase ASA длинна текста запроса
8 сообщений из 8, страница 1 из 1
VFP+Sybase ASA длинна текста запроса
    #33680524
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот не знаю, на что и грешить.

Подскажите, есть ли ограничения на длину запроса? Т.е.
Запускаю выполтение запроса:
Код: plaintext
1.
2.
l_sql='select * from table1'
SQLEXEC(_nCH,l_sql, 'c_tmp')
Дело в том, что если запрос как описан выше (т.е. маленький по кол-ву символов) то все работает.
Если я включаю достаточно объемный запрос, т.е. около 3 тыс. символов, то SQLEXEC() выдает ошибку -1

Пробовал сделать следующее, чтобы проверить, может где и ошибся:
Код: plaintext
1.
2.
3.
4.
5.
F=FCREATE('c:\temp.txt')
IF F#- 1 
	FPUTS(F, l_sql) 
ENDIF 
FCLOSE(F)
Копировал текст из temp.txt и запускал в интерактив SQL - запрос работает.
В чем может быть ошибка?
...
Рейтинг: 0 / 0
VFP+Sybase ASA длинна текста запроса
    #33680612
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том, как ты собираешь свой длинный запрос. Но, так как ты нам не показал сего процесса, то и сказать особо нечего.
...
Рейтинг: 0 / 0
VFP+Sybase ASA длинна текста запроса
    #33680640
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
IF !TYPE('_nCH')='N'
	PUBLIC _nCH
ENDIF 	
LOCAL lcStringConnect, l_sql
_nCH=SQLConnect(myBase, user, pasword)
IF m._nCH<= 0 
	MESSAGEBOX('Соединение установить не удалось')
	RETURN 
ENDIF

LOCAL l_sql
l_sql= ;
[select "date oper" ] +;
[from "my table" ] +;
[where "oper cod" in ('800', '812') ] +;
[order by  1 ]

IF SQLEXEC(_nCH, l_sql, 'c_tmp')< 0  
	MESSAGEBOX('Ошибка выполнения запроса')
	RETURN 
ENDIF
ps
упрощенно это выглядит так
Названия полей и таблиц с пробелами, это уж не я так называл.
Скажем, что данный запрос работает.
Если его увеличить текст запроса до 3 тыс. символов. то увы, выдает ошибку.
...
Рейтинг: 0 / 0
VFP+Sybase ASA длинна текста запроса
    #33680645
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Длинна команды может быть ограничена:
1. Длинной переменной VFP - 16МБ
2. Размер пакета MS SQL Server - 64 Кбайт сетевых пакетов.
Как для Sybase ASA не знаю :)
С уважением, Алексей
...
Рейтинг: 0 / 0
VFP+Sybase ASA длинна текста запроса
    #33681018
LEN()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Только что глянул, есть запрос около 8кб длиной. ВФП пережевывает его нормально.
2)Может проблема в самом запросе? Что показывает AERROR()?
3) Используй для составления длинных запросов конструкцию

Код: plaintext
1.
2.
3.
4.
TEXT TO QueryVar NOSHOW PRETEXT  15 
     select бла-бла-бла
ENDTEXT 
=SQLEXEC(ConnHand,QeryVar)
это горадо более удобно, т.к. можешь писать с произвольным форматированием.
...
Рейтинг: 0 / 0
VFP+Sybase ASA длинна текста запроса
    #33681240
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LEN() Спасибо за подсказку:
TEXT TO QueryVar NOSHOW PRETEXT 15 *** ENDTEXT

Интересно то, что запрос заработал.
Магнитные бури однако :))
...
Рейтинг: 0 / 0
VFP+Sybase ASA длинна текста запроса
    #33684611
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi GoshaS!

При "составлении запроса" из мелких кусков иногда теряется нужный пробел -
ну например между последним элементом списка полей и следующим за этим
ключевым словом FROM...
Что интересно, TEXT/ENDTEXT ещё более "опасен" в этом отношении - особенно с
режимом PRETEXT 15 - как раз нужные пробелы и могут быть "урезаны" - уж
лучше не удалять CRLF в самом TEXT, а после команды заменять их на пробелы
(т.е. гарантированно разделять пробелами текст из разных строк).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
VFP+Sybase ASA длинна текста запроса
    #33712877
LEN()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Igor Korolyov
Hi GoshaS!

При "составлении запроса" из мелких кусков иногда теряется нужный пробел -
ну например между последним элементом списка полей и следующим за этим
ключевым словом FROM...
Что интересно, TEXT/ENDTEXT ещё более "опасен" в этом отношении - особенно с
режимом PRETEXT 15 - как раз нужные пробелы и могут быть "урезаны" - уж
лучше не удалять CRLF в самом TEXT, а после команды заменять их на пробелы
(т.е. гарантированно разделять пробелами текст из разных строк).

Posted via ActualForum NNTP Server 1.3

Не опасно, юзаю давно и с успехом
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP+Sybase ASA длинна текста запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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