powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / RecordSource and SQL
16 сообщений из 16, страница 1 из 1
RecordSource and SQL
    #33080912
Здорово парни! У менэ вопрос, как свойству RecordSource присвоить SQL- запрос,(синтаксис какой)
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33080937
Выдает синтакс. ошибку, подскажите что не так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
ThisForm.Pageframe1.Page5.Grid1.RecordSource = "SELECT Klienty.familia AS фамилия, Klienty.imy AS имя,;
  Klienty.otchestvo AS отчество, Klienty.nomer_pasporta AS номер,;
  Kreditnoe_soglashenie.itog_prpcent AS итого,;
  Kreditnoe_soglashenie.datasostav AS дата, Srokkredita.srok AS срок,;
  Vid_kredita.nazvanie AS вид,;
  Kreditnoe_soglashenie.summa_kredita AS сумма;
 FROM ;
     data1!klienty ;
    INNER JOIN data1!kreditnoe_soglashenie ;
   ON  Klienty.cod_klienta = Kreditnoe_soglashenie.cod_klienta ;
    INNER JOIN data1!srokkredita ;
   ON  Srokkredita.cod_sroka = Kreditnoe_soglashenie.cod_sroka ;
    INNER JOIN data1!vid_kredita ;
   ON  Vid_kredita.cod_vida = Kreditnoe_soglashenie.cod_vida;
 WHERE  Klienty.familia = ( "Си" );
 ORDER BY Klienty.familia"
 
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33080951
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FROM... ???
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33080960
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да синтаксис он и в Африке синтаксис... А потому одну какую-нибудь пару кавычек замени на что-нибудь другое, например [] :)

Нельзя внутри текстовой строки использовать те же ограничители, что и ограничители самой строки. Если испольpуешь снаружи двойные кавычки (" "), то в нутри строки их использовать нельзя, а надо воспользоваться или квадратными скобками ([]), или одинарными кавычками (' ').
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33080973
Заменил кавычки, вылазиет окошко "В командной строке использована фраза, начинающаяся с недопустимого ключевого слова."
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33080980
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Пособие для начинающих"

Символьные поля, переменные памяти и константы

В FoxPro существует отличия в предельно допустимой длине символьных данных в зависимости от того, о чем идет речь: поле таблицы, переменной памяти или константе

Ну, с полями таблицы все ясно. Их предельная длина определяется собственно размерностью поля. Однако размерность поля не может превышать 254 символов. Для memo-полей объем не может превышать 2ГБ (2 гигабайта - это 2 и 9 нулей символов).

Длина символьной константы не может превышать 255 символов

Длина символьной переменной теоретически не может превышать 16,777,184 символов. "Теоретически", потому, что при определенных условиях все-таки может. Просто за последствия такого превышения никто не отвечает.

Отдельно следует остановиться на отличии символьной константы от символьной переменной. Начинающие программисты очень часто получают сообщение об ошибке "Command contains unrecognized phrase/keyword (Error 36)" именно в силу непонимания этой разницы.

В FoxPro для написания символьных констант можно использовать 3 символа: одинарные кавычки, двойные кавычки, квадратные скобки. В чем отличие символьной константы от символьной переменной проще объяснить на примере. Словами получится долго и невнятно. Например:

Код: plaintext
1.
LOCAL lcString
lcString = 'Начало строки' + " середина строки " + [окончание строки]


Так вот, здесь то, что записано в кавычках и квадратных скобках - это 3 символьные константы, а lcString - это одна символьная переменная

Вообще-то, лично мне трудно представить, как можно написать одну символьную константу длиной больше 255 символов. Точнее написать-то такое можно, но как потом это можно редактировать! Получится совершенно не "читабельный" текст. Я рекомендовал бы разбивать длинные символьные константы на небольшие фрагменты с тем, чтобы каждый отдельный фрагмент целиком помещался в окне редактирования. Примерно так:

Код: plaintext
1.
2.
3.
LOCAL lcString
lcString = "Начало строки"+;
      " середина строки "+;
      "окончание строки"


В FoxPro нет специальных управляющих символов, как, например, в C используется обратный слэш. Поэтому, если Вам надо использовать кавычки не как границу символьной константы, а как собственно символ, то просто обрамляйте их кавычками другого типа:

Код: plaintext
?[ЗАО "Рога и копыта"]


Следует всегда помнить, что FoхPro отличается определенной "самостоятельностью" в конвертации данных. Применительно к символьным данным это проявляется в том, что если Вы попытаетесь записать в символьное поле больше символов, чем позволяет его размерность, то ошибки это не вызовет, просто "лишние" символы будут отброшены без каких-либо дополнительных сообщений об ошибках.

Код: plaintext
1.
2.
CREATE CURSOR test (test C( 5 ))
INSERT INTO test (test) VALUES ("1234567890")
?test.test
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33081067
Спасибо за помощь! Все сделал как вы сказали - работает, тоько одно но.
После выполнения этой команды у меня появляется отдельная таблица с результатом запроса, а как сделать что бы у меня результаты сразу появлялись в Гриде.?
И как правильно записать:
Код: plaintext
1.
WHERE  Klienty.familia = ( "Си" )
чтобы вместо этого у меня было что-то типа
Код: plaintext
1.
WHERE  Klienty.familia = ThisForm.Text1.Value
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33081242
Glyba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не появлялось броуза с результатом запроса, нужно, чтобы в SELECT было INTO, даже если тебе не нужен этот алиас.
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33081284
А примерчик прстеникий с INTO?
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33081291
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Крутой_НольА примерчик прстеникий с INTO?
А самому HELP почитать?

SELECT ... FROM ... INTO CURSOR curTmp NOFILTER ...

При выходе из формы закрыть уже не нужный курсор

USE IN curTmp
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33082042
А курсор это надо сначало созжавать в базе или нет?
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33082144
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33082308
Вот што написал
Не работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 ThisForm.Pageframe1.Page5.Grid1.RecordSource = "SELECT Klienty.familia AS фамилия, " + ;
  "Klienty.imy AS имя, " + ;
  "Klienty.otchestvo AS отчество, Klienty.nomer_pasporta AS номер_паспорта, " + ;
  "Kreditnoe_soglashenie.itog_prpcent AS итого, " + ;
  "Kreditnoe_soglashenie.datasostav AS дата_составления, Srokkredita.srok AS срок_погашения, " + ;
  "Vid_kredita.nazvanie AS вид_кредита, " + ;
  "Kreditnoe_soglashenie.summa_kredita AS сумма_кредита " + ;
 "FROM " + ;
  "INTO CURSOR curTmp NOFILTER " + ;
     "data1!klienty " + ;
    "INNER JOIN data1!kreditnoe_soglashenie " + ;
   "ON  Klienty.cod_klienta = Kreditnoe_soglashenie.cod_klienta " + ;
    "INNER JOIN data1!srokkredita " + ;
   "ON  Srokkredita.cod_sroka = Kreditnoe_soglashenie.cod_sroka " + ;
    "INNER JOIN data1!vid_kredita " + ;
   "ON  Vid_kredita.cod_vida = Kreditnoe_soglashenie.cod_vida " + ;
 "WHERE  Klienty.familia = ( [Си] ) " + ;
 "ORDER BY Klienty.familia"
 
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33082316
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушай, ну прочитай HELP по команде Select-SQL. Невозможно же постоянно поправлять элементарнейшие ошибки. Тут даже особого знания не нужно. Элементарная логика. Смотри, что ты написал:


"FROM " + ;
"INTO CURSOR curTmp NOFILTER " + ;
"data1!klienty " + ;

Как ты себе это представляешь? Что тут FROM?
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33082378
Ой в натуре! Наверное надо отдохнуть, а то скоро совсем крыша педет! Спасибо тебе огромное ВладимирМ!
...
Рейтинг: 0 / 0
RecordSource and SQL
    #33082493
Ура!!!! Получилось!!!!
INTO надо в самую последнюю очередь писать
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / RecordSource and SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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