powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перенести колонки из 1 dbf файла в другой
6 сообщений из 6, страница 1 из 1
Перенести колонки из 1 dbf файла в другой
    #36602040
ubivic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Суть проблемы в следующем:
Имеется два дбфника (компоненты бэста 4),
Требуется заменить данные в одном файле (по одному столбцу) другим.
Подскажите как это правильно реализовать, очень нуб в фоксе, а аксесс файлы открывает, но в них совершенно другие данные, нежели отображает фокс и бэст.

Программа вижуал фокс про 9.
Имя dbf откуда взять инфу cardspri1 поле для импорта EndSum
Имя dbf куда вставить - cardspri заменить нужно поле saldo, связь нужно реализовать по табельному номеру - TNUM.
Я совсем тупой, буду очень признателен если Вы поможете и опишете все подробно (вплоть до того как открыть сразу 2 dbf.
...
Рейтинг: 0 / 0
Перенести колонки из 1 dbf файла в другой
    #36602275
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ubivic,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SELECT  0  
CREATE CURSOR cardspri (TNUM N( 5 ),SALDO N( 18 , 2 ))
INSERT INTO cardspri (TNUM,SALDO) VALUES ( 1 , 10000 )
INSERT INTO cardspri (TNUM,SALDO) VALUES ( 2 , 20000 )
INSERT INTO cardspri (TNUM,SALDO) VALUES ( 3 , 30000 )
INSERT INTO cardspri (TNUM,SALDO) VALUES ( 4 , 40000 )
INSERT INTO cardspri (TNUM,SALDO) VALUES ( 5 , 50000 )

SELECT  0  
CREATE CURSOR cardspri1 (TNUM N( 5 ),ENDSUM N( 18 , 2 ))
INSERT INTO cardspri1 (TNUM,ENDSUM) VALUES ( 1 , 20000 )
INSERT INTO cardspri1 (TNUM,ENDSUM) VALUES ( 2 , 30000 )
INSERT INTO cardspri1 (TNUM,ENDSUM) VALUES ( 3 , 40000 )
INSERT INTO cardspri1 (TNUM,ENDSUM) VALUES ( 4 , 50000 )
INSERT INTO cardspri1 (TNUM,ENDSUM) VALUES ( 7 , 80000 )

* ВСТАВКА НОВЫХ TNUM ( 7 )
INSERT INTO cardspri (TNUM,SALDO) SELECT TNUM,EndSum FROM cardspri1 WHERE cardspri1.TNUM ; 
	NOT IN (SELECT cardspri.TNUM FROM cardspri)
* ЗАМЕНА СОВПАДАЮЩИХ TNUM
UPDATE cardspri SET SALDO = cardspri1.EndSum FROM cardspri1 WHERE cardspri1.TNUM = cardspri.TNUM
* УДАЛЕНИЕ TNUM( 5 ) ОТСУТСТВУЮЩИХ В cardspri1
DELETE FROM cardspri WHERE cardspri.TNUM NOT IN (SELECT cardspri1.TNUM FROM cardspri1)
...
Рейтинг: 0 / 0
Перенести колонки из 1 dbf файла в другой
    #36602349
ubivic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LUCIAN,
Огромнейшее спасибо, только
Извините за мою тупость, как открыть 2 dbf одновременно фоксом?
Фокс практически не юзал((( а тут такая гадость получилась..
...
Рейтинг: 0 / 0
Перенести колонки из 1 dbf файла в другой
    #36602379
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ubivic,

use "C:\cardspri1.dbf" in 0 alias cardspri1
use "D:\cardspri.dbf" in 0 alias cardspri
далее по тексту - вставка, замена и т.д.
...
Рейтинг: 0 / 0
Перенести колонки из 1 dbf файла в другой
    #36602527
ubivic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

за синтаксис юс спасибо, открыл обе.
А вот с выполнением, Друг друга не поняли. Мне не надо создавать ничего, нужен корректный запрос по замене содержимого просто, вот так он выглядит на аксесе
UPDATE cardspri INNER JOIN cardspri1 ON cardspri.TNUM=cardspri1.TNUM SET cardspri.SALDO = cardspri1.ENDSUM;
Вопрос как сделать в фоксе - по тnum нужно сделать связь еще как-то, запись в relations правильная - Cardspri.tnum=Cardspri1.tnum, если нет подскажите как поправить.
...
Рейтинг: 0 / 0
Перенести колонки из 1 dbf файла в другой
    #36602598
ubivictanglir,

за синтаксис юс спасибо, открыл обе.
А вот с выполнением, Друг друга не поняли. Мне не надо создавать ничего, нужен корректный запрос по замене содержимого просто, вот так он выглядит на аксесе
UPDATE cardspri INNER JOIN cardspri1 ON cardspri.TNUM=cardspri1.TNUM SET cardspri.SALDO = cardspri1.ENDSUM;
Вопрос как сделать в фоксе - по тnum нужно сделать связь еще как-то, запись в relations правильная - Cardspri.tnum=Cardspri1.tnum, если нет подскажите как поправить.Надо просто взять и почитать описание синтаксиса команды update - SQL. Релейшены к ней не имеют никакого отношения.
Код: plaintext
UPDATE cardspri  SET cardspri.SALDO = cardspri1.ENDSUM FROM cardspri  INNER JOIN cardspri1 ON cardspri.TNUM=cardspri1.TNUM
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перенести колонки из 1 dbf файла в другой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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