Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 SQl запросы  [new]
НовичекМ
Guest
Программно создала запрос. В INTO указала направление вывода результата запроса- курсор. Где и как я должна записать(программно) или в свойствах, что это курсор а не таблица, например?
27 июл 04, 20:09    [840267]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
Burn
Member

Откуда: Днепропетровск, Украина
Сообщений: 1167
>Где и как я должна записать(программно) или в свойствах, что это курсор а не таблица, например?
SELECT .... INTO CURSOR <имя_курсора>
Этого достаточно
27 июл 04, 20:17    [840275]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
Не найду ошибку. Без Sql запроса В Gride Просматривается вся таблица, а как только записываю Sql запрос(даже для всей таблицы, без каких либо условий) в просмотре пусто. Думаю что в свойствах что-то недоставляю?
27 июл 04, 20:29    [840304]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
Redrik
Member

Откуда:
Сообщений: 814
Ляпну... Авось попаду... ;-)
Источником данных в гриде что указано?
27 июл 04, 22:46    [840467]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
Перед выводом формы на экран формируем запрос SQL. Как результат запроса поместить в GRID, поставленный на форму
28 июл 04, 12:41    [841740]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
miv32
Member

Откуда:
Сообщений: 306
THISFOR.твойгрид.recordsourcetype=1
THISFOR.твойгрид.recordsource="твой курсор"
28 июл 04, 12:56    [841819]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
Redrik
Member

Откуда:
Сообщений: 814
Во-во! Источник данных смотри!
28 июл 04, 15:41    [842791]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
Alex Is
Member

Откуда:
Сообщений: 98
Вообщем сделай так!!

На LOAD формы пусть выполняется твой запрос!

Потом в ините формы:

thisform.grid1.RecordSource = '' && Дабы не валился грид

Сдесь можешь делать любые манипуляции(если необходимо)



thisform.grid1.RecordSource = "Имя курсора"
thisform.grid1.column1.ControlSource = "Имя курсора.Имя поля"
thisform.grid1.column2.ControlSource = ....... и т д
...
28 июл 04, 17:05    [843282]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
Сделала так
На Load занесла
SELECT Spisa.imen, Spisa.datr ;
FROM ;
spisa ;
WHERE Spisa.datr = DATE()into cursor tmpcur
В Init записала
thisform.grid1.RecordSource = ''
thisform.grid1.RecordSource ="tmpcur"
thisform.grid1.column1.ControlSource = "tmpcur.imen"
thisform.grid1.column2.ControlSource = "tmpcur.Datr"
И все тоже, наименование столбцов в Gride есть(оно и раньше было), а сама таблица пустая и еще выдает ошибку, что нужен индекс по таблице
Что еще сделать?
28 июл 04, 18:39    [843679]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
miv32
Member

Откуда:
Сообщений: 306
Пробела после DATE() нет?
WHERE Spisa.datr = DATE()into cursor tmpcur

Надо указать для грида
recordsourcetype=1
28 июл 04, 18:55    [843708]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7869
На этапе проектирования формы в дезайнере убедись, что у тебя стоит для

Grid.RecordSource=(None)

Причем это самое (None) должно быть выделено жирным шрифтом. Ни в коем случае не сбрасывай его по Reset At Default.

Сам запрос можно сделать и в Init-формы (до настройки параметров Grid). В данном случае это непринципиально.

Но вообще-то, проще сделать параметризированное Local View и не мучиться
28 июл 04, 18:59    [843713]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
Извините, пожалуйста, но фразу

Но вообще-то, проще сделать параметризированное Local View и не мучиться

не понимаю(новичек я в FOXpro) а пробел у меня есть.
Все поставила, но все тоже
28 июл 04, 20:18    [843806]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
miv32
Member

Откуда:
Сообщений: 306
Пришли свою форму с grid-ом и dbf, из которого данные
берешь, гляну )))
miv32km.ru
29 июл 04, 09:31    [844250]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7869
НовичекМ
Извините, пожалуйста, но фразу

Но вообще-то, проще сделать параметризированное Local View и не мучиться

не понимаю(новичек я в FOXpro) а пробел у меня есть.
Все поставила, но все тоже


Как сделать параметризированное Local View?

-) Открываешь свой проект (надеюсь, собственно файл проекта есть - это файлы pjx, pjt)
-) Переходишь на закладку Data
-) В отображенном там дереве устанавливаешь указатель на узел DataBase - MyBase - Local Views (здесь MyBase - это имя твоей базы данных)
-) Нажимаешь кнопку "New"
-) Для простоты (в качестве обучения) можешь воспользоваться визардом. Т.е. выбрать кнопку "View Wizard"
-) На первом шаге выбираешь таблицу и поля, которые должны попасть в результирующую выборку. В твоем случае это Spisa.imen, Spisa.datr
-) На втором шаге необходимо указать условия отбора (директива WHERE). В твоем случае выбираешь поле Spisa.datr, опреатор "equals", а в окошке Value пишешь "?tdDate" - разумеется без кавычек.
-) Третий шаг пропускаешь (у тебя нет сортировки)
-) На пятом шаге при нажатии кнопки Finish надо будет ввести имя твоего Local View, например, MyView

Теперь если вызовешь на модификацию твой Local View и посмотришь код SQL-запроса, то он будет выглядеть примерно так:

SELECT Spisa.imen, Spisa.datr ;
FROM MyBase!spisa ;
WHERE Spisa.datr = ?tdDate

Вопросительный знак говорит о том, что далее следует параметр, который необходимо заполнять непосредственно перед запуском Local View.

Теперь включаешь этот Local View в DataEnvironment твоей формы обязательно установив свойство этого View.NoDataOnLoad=.T.

В Init-формы пишешь примерно такой код

LOCAL tdDate
tdDate=Date()
REQUERY("MyView")

Для Grid делаешь настройки прямо в дезайнере формы
RecordSource = MyView
RecordSourceType=1 (Alias) - значение по умолчанию

Все. Запускай форму.

Вообще-то, в данном случае можно обойтись и без параметра. Просто написав в условии запроса Spisa.datr = Date(). Но параметр позволяет указать любую дату, не только текущую.
29 июл 04, 09:48    [844324]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
Большое спасибо, получилось сегодня, но я всю форму сделала, начиная с 0, а со старым вчерашним вариантом так ничего и не вышло.
И еще вопрос. Мне нужно ввести дату просчета(прошедший месяц).Как бы вы этот сделали программно.
29 июл 04, 10:22    [844452]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7869
НовичекМ
Мне нужно ввести дату просчета(прошедший месяц).Как бы вы этот сделали программно.


Ну, так параметризированный View для того и создается, что бы можно было указать любую дату. Т.е. необходимо просто вычислить нужную дату и подставить ее в параметр:

LOCAL tdDate
* Первое число прошлого месяца
tdDate = GoMonth(Date(),-1)
tdDate = m.tdDate - DAY(m.tdDate)+1

* Последнее число прошлого месяца
tdDate = Date()
tdDate = m.tdDate - DAY(m.tdDate)

*Далее как и раньше
REQUERY("MyView")

Кстати, можно перестроить View (дать команду REQUERY()) и в процессе работы формы. Это не приведет к разрушению структуры Grid.
29 июл 04, 11:57    [844958]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
Все получилось, БОЛЬШОЕ СПАСИБО.
Извините, еще такой вопрос. Из своей базы я хочу выбрать какую- то конкретную запись, определяющий реквизит которой заданный с экрана. Мне немножко непонятен момент снятия этого реквизита с экрана.
30 июл 04, 18:36    [850412]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7869
НовичекМ
Все получилось, БОЛЬШОЕ СПАСИБО.
Извините, еще такой вопрос. Из своей базы я хочу выбрать какую- то конкретную запись, определяющий реквизит которой заданный с экрана. Мне немножко непонятен момент снятия этого реквизита с экрана.


Свойство Value соответствующего объекта. Если речь идет о TextBox, то примерно так:

LOCAL lcValue
lcValue = ThisForm.TextBox1.Value
30 июл 04, 19:24    [850507]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
И еще. У меня на дискете есть файл с одинаковой длиной записей в формате txt. Как его программно записать в уже созданную здесь таблицу?
30 июл 04, 20:11    [850556]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
SOS!!!!!!!!!
По Local View - непосредственно в нем работает, на форме выдает ошибку
Alias not found, хотя все что вы подсказали сделапа. ??????????????????
30 июл 04, 20:57    [850596]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7869
НовичекМ
И еще. У меня на дискете есть файл с одинаковой длиной записей в формате txt. Как его программно записать в уже созданную здесь таблицу?


Почитай описание команды APPEND FROM

НовичекМ
SOS!!!!!!!!!
По Local View - непосредственно в нем работает, на форме выдает ошибку
Alias not found, хотя все что вы подсказали сделапа. ??????????????????


Это ты о чем? Непосредственно в чем? Какая форма?
2 авг 04, 10:01    [851674]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
ВОПРОС По Local View - непосредственно при его создании Sql запрос работает,файл выводится в Gride правильно, если перехожу в форму, установив все что вы подсказали, выдает ошибку
Alias not found, по отладчику посмотрела что не нравиться в Init формы
REQUERY("Myview"), где Myview название моего Local View ??????????????????
4 авг 04, 18:27    [859580]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7869
НовичекМ
ВОПРОС По Local View - непосредственно при его создании Sql запрос работает,файл выводится в Gride правильно, если перехожу в форму, установив все что вы подсказали, выдает ошибку
Alias not found, по отладчику посмотрела что не нравиться в Init формы
REQUERY("Myview"), где Myview название моего Local View ??????????????????


Вот это сделано?

ВладимирМ

Теперь включаешь этот Local View в DataEnvironment твоей формы обязательно установив свойство этого View.NoDataOnLoad=.T.
4 авг 04, 19:42    [859776]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
НовичекМ
Guest
Теперь включаешь этот Local View в DataEnvironment твоей формы обязательно установив свойство этого View.NoDataOnLoad=.T.

Извините за мою тупость, но где я должна это записать, сделала активной свою форму - вызвала DataEnvironment для данной формы, а дальше ????????
4 авг 04, 19:51    [859791]     Ответить | Цитировать Сообщить модератору
 Re: SQl запросы  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7869
Открыл DataEnvironment, далее

-) Пункт главного меню "DataEnvironment", подпункт ADD (или правой кнопкой мыши на окне DataEnvironment пункт Add)

-) В открывшейся формочке устанавливаешь переключатель "Select" в режим "View", устанавливаешь указатель на твое View и нажимешь кнопку ADD. Закрываешь уже ненужную формочку для добавления объектов

-) Активизируешь в DataEnvironment только что добавленное View и переходишь в окно Properties. Устанавливаешь в нем свойство NoDataOnLoad в значение .T.

Можно еще добавить View по другому:

-) Активизируешь окно DataEnvironment и окно твоего проекта.
-) Нажимаешь мышкой в окне проекта на нужное View и не отпуская тащишь ее в область DataEnvironment. После отпускания мыши View вставится в DataEnvironment. Надо будет только изменить NoDataOnLoad
4 авг 04, 20:06    [859800]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / FoxPro, Visual FoxPro Ответить