Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 SQL-запрос в МЕМО-поле???  [new]
givi
Member

Откуда: Кострома
Сообщений: 135
Люди, подскажите реально ли хранить текст SQL-запроса в МЕМО-поле таблицы, и затем использовать его при построении например репорта. Если можно, то подскаджите, как потом выполнить этот запрос?
25 фев 05, 12:42    [1344575]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Через макроподстановку или SQLEXEC()
25 фев 05, 12:45    [1344600]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
givi
Member

Откуда: Кострома
Сообщений: 135
Если через SQLEXEC то это через ODBC - не хотелось бы....
а если макроподстановка - то это что, построчно передавать выборку?
25 фев 05, 14:25    [1345169]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
givi
а если макроподстановка - то это что, построчно передавать выборку?


&MemoFieldName

Выполниться запрос и вернет выборку туда куда прописано в SELECTE.
25 фев 05, 14:31    [1345206]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
givi
Member

Откуда: Кострома
Сообщений: 135
не получается
в мемо поле стоит следующее Select * from spr_izd into table tmp
пишу &мое_мемо_поле
и мне такую ошибку:
Unrecognized command verb
25 фев 05, 14:42    [1345263]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
1. lcVarName=<MemoFieldName>
&lcVarName
или
2. ExecScript(<MemoFieldName>)
25 фев 05, 14:53    [1345323]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
givi
Member

Откуда: Кострома
Сообщений: 135
А в первом случае не будет ограничения на количество знаков в запросе - а именно если количество букв в запросе у меня будет больше 255????
25 фев 05, 15:01    [1345364]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
А ты опиши lcVarName as string :)
25 фев 05, 15:03    [1345373]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
givi
Member

Откуда: Кострома
Сообщений: 135
шутишь??? в фоксе переменной нельзя присвоить тип...
это больше похоже на строку из делфы
25 фев 05, 15:06    [1345396]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
givi
шутишь??? в фоксе переменной нельзя присвоить тип...
это больше похоже на строку из делфы


На каком ФОКСЕ пишешь?
25 фев 05, 15:10    [1345414]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
givi
Member

Откуда: Кострома
Сообщений: 135
6 версия
25 фев 05, 15:11    [1345418]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Вот про 6 не скажу. Но выполни строчку

public lcStr as string

Если не выругается, то все ОК.
У меня VFP7.
25 фев 05, 15:13    [1345427]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
Snick
Member

Откуда:
Сообщений: 53
На VFP6 нужно:
PUBLIC  lcStr
lcStr = ''
Тогда lcStr будет определена как строка.
25 фев 05, 15:29    [1345514]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
givi
Member

Откуда: Кострома
Сообщений: 135
ну все получилось.....
спасибо...!!!!
25 фев 05, 15:39    [1345568]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
givi
не получается
в мемо поле стоит следующее Select * from spr_izd into table tmp
пишу &мое_мемо_поле
и мне такую ошибку:
Unrecognized command verb

А поконкретнее, как писал &мое_мемо_поле?
Не так ли, случайно:
&моя_таблица.мое_мемо_поле
?
Так нельзя. Надо:
&моя_таблица->мое_мемо_поле
! ;-)
25 фев 05, 16:03    [1345695]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Urri
Так нельзя. Надо:
&моя_таблица->мое_мемо_поле
! ;-)

Так тоже нельзя :)
Даже так
select <MyTable>
&<MemoFieldName>
дает ошибку
25 фев 05, 16:30    [1345820]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Visual FoxPro System Capacities

Maximum # of characters per character string or memory variable 16,777,184
Maximum # of characters per macro substituted line 8,192
Maximum # of characters per command line 8,192

Вы делаете распространенную ошибку. Путаете длину символьной константы и количество символов в символьной переменной. Как видите, количество символов в переменной памяти может быть до 16МБ, а в макроподстановке допустимо до 8Кб. Поскольку речь идет об одной команде, то ее длина также не должна превышать 8Кб.

Все переменные памяти FoxPro в любой версии по сути, имеют тип "variant". Т.е. их тип зависит не от способа определения, а от содержания. Если в нее записываются символьные данные, будет символьной, если числовые - числовой.

LOCAL lcString
lcString = "Строка"
?TYPE("m.lcString")
lcString = 1
?TYPE("m.lcString")

Это никакой ошибки не вызовет. Такова логика работы FoxPro.
25 фев 05, 16:37    [1345854]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
AleksMed
Так тоже нельзя :)
Даже так
select <MyTable>
&<MemoFieldName>
дает ошибку

Ну, значит, надо работать только с переменными ;-)
Да, да, припоминаю: и я тоже прямо из поля не мог макроподставлять ;-)))
25 фев 05, 16:47    [1345892]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
givi
Member

Откуда: Кострома
Сообщений: 135
Я тоже через переменную и делал - если напрямую поле пишешь - ошибка.....
26 фев 05, 09:26    [1346797]     Ответить | Цитировать Сообщить модератору
 Re: SQL-запрос в МЕМО-поле???  [new]
piva
Member

Откуда: Курган
Сообщений: 1096
Ну если изобретать паровоз тогда - вот фокус-покус без переменной
_vfp.docmd(моя_таблица->мое_мемо_поле)
Картинка с другого сайта.
26 фев 05, 10:28    [1346827]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить