powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Копирование записей из курсора в таблицу....
10 сообщений из 10, страница 1 из 1
Копирование записей из курсора в таблицу....
    #35995338
rekki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые "отцы" FoxPro, подскажите начинающему, как мне скопировать записи(несколько) из курсора в таблицу. У меня такая идея была:

Use zakaz
IF !BOF()
INSERT INTO заказы VALUES (VAL(zakaz.код), zakaz.категория, zakaz.модель, zakaz.гарантия, zakaz.цена, ALLTRIM(thisform.text1.Value), ALLTRIM(thisform.text2.Value), ALLTRIM(thisform.text3.Value))
SKIP -1
ELSE
MESSAGEBOX("Ващ заказ принят и будет обработан в ближайшее время",0+64)
ENDIF

Но к сожадению курсор не таблица, к нему так не перейдешь... пробывал с функцией DBF, не помогло: "File in USE".

А история такая с разных форм добавляются записи в курсор, а при нажатии на кнопочку надо все записи из курсора+ некоторая добавочка, сохранить в уже подготовленую таблицу.
...
Рейтинг: 0 / 0
Копирование записей из курсора в таблицу....
    #35995353
rekkiУважаемые "отцы" FoxPro, подскажите начинающему, как мне скопировать записи(несколько) из курсора в таблицу. У меня такая идея была:

Use zakaz
IF !BOF()
INSERT INTO заказы VALUES (VAL(zakaz.код), zakaz.категория, zakaz.модель, zakaz.гарантия, zakaz.цена, ALLTRIM(thisform.text1.Value), ALLTRIM(thisform.text2.Value), ALLTRIM(thisform.text3.Value))
SKIP -1
ELSE
MESSAGEBOX("Ващ заказ принят и будет обработан в ближайшее время",0+64)
ENDIF

Но к сожадению курсор не таблица,Неужто так сильно отличается? к нему так не перейдешь...И что понимается под переходом? И как он делался? И что получилось? пробывал с функцией DBF,И как проб о вал? не помогло: "File in USE".

А история такая с разных форм добавляются записи в курсор, а при нажатии на кнопочку надо все записи из курсора+ некоторая добавочка, сохранить в уже подготовленую таблицу.Что происходит при работе приведенного кода? Ругается?
...
Рейтинг: 0 / 0
Копирование записей из курсора в таблицу....
    #35995360
rekki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При работе данного кода пишет что файл zakaz.dbf не найден
Под переходом понимается то что курсор работает в фоне, работают формы которые отображают таблицы, курсор создается на самом начальном этапе, а записи туда записываются в процессе всей работы, тоесть он висит в памяти, и чтобы сделать GO TOP или GO BoTTOM, нужно сперва перейти к нему, так сказать сделать его активным
А пробовал так USE DBF('zakaz')
...
Рейтинг: 0 / 0
Копирование записей из курсора в таблицу....
    #35995378
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблицы (и курсоры) открываются в так называемых "рабочих областях". Как следствие, переключение происходит не между таблицами, а между рабочими областями.

Переключение осуществляется командой SELECT

Код: plaintext
1.
2.
3.
select zakaz
if !BOF()
...
endif

Разумеется, таблица zakaz должна быть предварительно открыта командой USE.

Но кроме явного перехода, есть еще возможность указать в какой рабочей области следует выполнить команду без собственно перехода в эту рабочую область. Для функций, это дополнительные параметры. Для команд - это дополнительная опция IN

Код: plaintext
1.
2.
3.
4.
IF !BOF("zakaz")
...
    SKIP - 1  IN zakaz
ENDIF
...
Рейтинг: 0 / 0
Копирование записей из курсора в таблицу....
    #35995396
rekki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, думаю эти варианты в паре помогут.
...
Рейтинг: 0 / 0
Копирование записей из курсора в таблицу....
    #35995407
rekki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему то таким макаром добавляется только 1 запись или первая ( если использовать GO TOP) или последняя (если GO BOTTOM). Может я что то не туда вставил??
...
Рейтинг: 0 / 0
Копирование записей из курсора в таблицу....
    #35995423
rekki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все вроде сделал вот тока кнопку надо нажимать (раз) по количеству записей вот код, чего не хватает?:
SELECT zakaz
IF !BOF()
INSERT INTO заказы VALUES (VAL(zakaz.код), zakaz.категория, zakaz.модель, zakaz.гарантия, zakaz.цена, ALLTRIM(thisform.text1.Value), ALLTRIM(thisform.text2.Value), ALLTRIM(thisform.text3.Value))
SKIP -1 IN zakaz
ELSE
MESSAGEBOX("Ваш заказ принят и будет обработан в ближайшее время",0+64)
ENDIF
...
Рейтинг: 0 / 0
Копирование записей из курсора в таблицу....
    #35995580
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rekkiВсе вроде сделал вот тока кнопку надо нажимать (раз) по количеству записей вот код, чего не хватает?:


Если была мысль сразу залить в таблицу все записи курсора, сделайте вокруг этого кода цикл-обрамление типа :

Код: plaintext
1.
2.
3.
4.
5.
6.
GO TOP IN MyCursor
DO WHILE !EOF('MyCursor')

* здесь ваш тот самый код

SKIP IN MyCursor
ENDDO
...
Рейтинг: 0 / 0
Копирование записей из курсора в таблицу....
    #35996018
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем здесь вообще цикл? Если надо залить ВСЕ записи таблицы zakaz в таблицу "заказы", то можно так (только для VFP9)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
LOCAL lcText1, lcText2, lcText3
lcText1 = ALLTRIM(thisform.text1.Value)
lcText2 = ALLTRIM(thisform.text2.Value)
lcText3 = ALLTRIM(thisform.text3.Value)

INSERT INTO заказы ;
SELECT ;
	VAL(zakaz.код), ;
	zakaz.категория, ;
	zakaz.модель, ;
	zakaz.гарантия, ;
	zakaz.цена, ;
	m.lcText1, ;
	m.lcText2, ;
	m.lcText3 ;
FROM zakaz
...
Рейтинг: 0 / 0
Копирование записей из курсора в таблицу....
    #35996320
rekki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем СпасиБо, очень помогли
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Копирование записей из курсора в таблицу....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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