powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Импорт из одной дбф в другую
12 сообщений из 12, страница 1 из 1
Импорт из одной дбф в другую
    #33193761
Tach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здрасьте!

Возникла такая проблема:

Мне нужно импортировать данные из первой дбф во вторую если определенные поля первой не пусты! Чего-то не получается!

SELECT temp

m=''
m=STR(shifr.shifr)
SELECT obsh_prizn
SCAN
SCATTER MEMVAR
!EMPTY(o.(m))= .t.
select temp
APPEND BLANK
GATHER MEMVAR
ENDSCAN

Что не так делаю?
подскажите плиз

Реньше отлично использовалось:

select material
scan
scatter memvar
m.Nom_tr=m.treb
m.tov=m.naim
m.nomenkl=m.nom
m.sum=m.suma
select tov_IN
append blank
gather memvar
select material
endscan

А вот при его небольшом изменении чего-то он глючит
В чем моя ошибка?

Всем заранее огромное спасибо за любую помощь!!!
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33193833
Samvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем так много команд?

Код: plaintext
1.
select tov_in
append from  material for <условие>
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33193834
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что написать типа
select * from TableSource where Expression into dbf TableDestination
Религия не позволяет ????
p/s Читайте доку :)
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33194048
Tach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SamvelА зачем так много команд?

Код: plaintext
1.
select tov_in
append from  material for <условие>


Прописываю:
SELECT obsh_prizn
append from data/temp for !EMPTY(obsh_prizn.sum_150)=.T.

НЕ РАБОТАЕТ!
может из-за того, что названия полей разные?
но они должны быть разными!
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33194085
sejko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
INSERT INTO dbf_name [(fname1 [, fname2, ...])]
SELECT [(fname1 [, fname2, ...])] FROM tablename WHERE condition

тебе поможет
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33194150
Tach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну напишите кто нибудь чего нибудь существующее а не из хелпа!!!
Я уже все мозги себе вытр....ал!
Может уже туплю! но ничего не получается!

ни это
SELECT obsh_prizn
append from data/temp for !EMPTY(obsh_prizn.sum_150)=.T.

ни это
select * from obsh_prizn where !EMPTY(obsh_prizn.sum_150)=.T. into dbf temp

и даже вот это!
INSERT INTO obsh_prizn (nom_m_dela, fio, sum_150);
SELECT nom_m_dela, fio FROM temp;
WHERE obsh_prizn.sum_150 > 0
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33194225
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какая версия фокса?
Для FPD - вот так можно (если поля названы неодинаково - хотя зачем было так их называть?):

SELECT obsh_prizn
SCAN FOR !EMPTY(sum_150)
INSERT INTO temp (здесь поля TEMP через запятые) VALUE(соотв.поля obsh_prizn через запятые)
ENDSCAN

Для VFP - явно лучше формула с SELECT-ом (только правильно надо составить - там у тебя явно совсем не то - структура-то у таблиц разная! А какая - не указано).
И вообще - "не работать" что-то может по-разному - то ли выдается сообщение об ошибке, то ли что другое... Кто-то может это угадать?!
Надо указывать все конкретнее, если хочешь, чтоб ответили конкретно.
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33194270
Tach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меняи 8-ой Фокс

Структура дбф-ок:

Temp:
nom_m_dela
fio
msek
grup
dat_okaz
suma
dat_sled

obsh_nazn:
nom_m_dela
fio
msek
grup
dat_150
sum_150
sled_150
.........
dat_210
sum_210
sled_210

Мне просто жизненно необходимо, чтоб
Если при выборе в комбо шифра т.е. 150,160 или 170...
в obsh_nazn было не пустое, то переносилось в Temp
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33194282
Tach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from obsh_prizn where !EMPTY(obsh_prizn.sum_150)=.T. into dbf temp
ничего не отображается


SELECT obsh_prizn
append from data/temp.dbf for !EMPTY(obsh_prizn.sum_150)=.T.
ничего никуда не переносится!


INSERT INTO obsh_prizn (nom_m_dela, fio, sum_150);
SELECT nom_m_dela, fio FROM temp;
WHERE !EMPTY(obsh_prizn.sum_150)=.T.
выдает: Необходимо задать доп параметры
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33194429
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TachНу напишите кто нибудь чего нибудь существующее а не из хелпа!!!

Стандартный "классический" способ

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
* Делаем выборку во временную таблицу всех записей
* с не пустым содержимым
SELECT * ;
FROM obsh_prizn ;
INTO CURSOR curNoEmpty NOFILTER ;
WHERE !EMPTY(obsh_prizn.sum_150)=.T.

* Добавляем в итоговую таблицу полученную выборку
SELECT temp
APPEND FROM (DBF("curNoEmpty"))

Если у Вас версия VFP9, то все это можно объединить в один запрос. Для версий до VFP3 включительно у команды Select-SQL не было опции NOFILTER.
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33194645
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Tach :

Твой вариант 1 - изменит структуру Temp. Вариант 2 - не будет работать из-за несоответствия структур обеих таблиц.
А разве в 3 варианте источник и назначение - не наоборот? :)
В смысле, разве не вот так нужно:

INSERT INTO temp (nom_m_dela, fio, suma);
SELECT nom_m_dela, fio, sum_150 FROM obsh_prizn ;
WHERE !EMPTY(obsh_prizn.sum_150)
...
Рейтинг: 0 / 0
Импорт из одной дбф в другую
    #33195415
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Tach!

Внималеьность и ещё раз внимательность - ты указал вставить в 3 поля, а в
запросе перечислены только 2 - что по твоему должно попасть в 3-е поле? И то
что INSERT INTO <КУДА_ВСТАВЛЯЕМ> (поля) SELECT ... FROM <ОТКУДА_ВСТАВЛЯЕМ>.
Для начала ты отладь простой SELECT - который выберет то что тебе нужно
(имена полей на данном этапе несущественны - главное порядок их запомнить) -
потом уже допиши начальную часть INSERT INTO - позаботившись о правильном
списке полей.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Импорт из одной дбф в другую
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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