powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Insert into Glupij vopros
17 сообщений из 17, страница 1 из 1
Insert into Glupij vopros
    #33803730
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sory, no nikak v helpe ne mogu najti, ranshe eto kak-to delal da zabil. Kak bilo s ispolzovanijem INSERT INTO i SELECT v odnom zaprose perekinutj dannije iz odnoj tablici v druguju? Kazhetsja dolzhno bitj chto-to takoje:
Код: plaintext
1.
2.
INSERT INTO add_edit (fld_id, fld_tbl, fld_name);
	FROM (Select * FROM gh_fields)
Tablici polnostju identichni
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33803755
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 9-ке так:
Код: plaintext
INSERT INTO add_edit Select * FROM gh_fields
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33803790
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящийВ 9-ке так:
Код: plaintext
INSERT INTO add_edit Select * FROM gh_fields


Ну, ещё можно так

Insert into Table (f1, f2, f3,....) select f1,f2,f3,... from table2
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33803800
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно. Главное: список полей должен быть одинаковый.
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33803811
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и типы полей, тоже. :))
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33803843
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ясен перец!
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33804534
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senks, schas zatestim :)
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33804557
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U menja stoit semjerka i ni odin variant ne prokativajet. Synatax error
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33804608
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почитать HELP по команде INSERT-SQL ?

Для VFP7 такая конструкция вообще работать не будет, поскольку она синтаксически некорректна. Для VFP7 допустимо только прямое перечисление значений. Либо напрямую через VALUE, либо через массив. Но в любом случае, команда INSERT-SQL вставляет по одной записи за раз.

Если необходима групповая вставка, то это делается через промежуточные таблицы

Код: plaintext
1.
2.
3.
4.
SELECT * FROM gh_fields INTO CURSOR curTmp NOFILTER
SELECT add_edit 
APPEND FROM (DBF("curTmp"))
USE IN curTmp


PS:

Конструкция INSERT INTO ... SELECT ... появилась только в VFP8. Причем совпадение типов вовсе не обязательно. Если типы не совпадают, то будет произведена их автоматическая конвертация. Насколько крректно - это уже другой вопрос...
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33804628
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nu eto uzhe interesnej, ne nado i kursor vruchnuju sozdavatj :) senks
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33804752
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМПричем совпадение типов вовсе не обязательно. Если типы не совпадают, то будет произведена их автоматическая конвертация.

На самом деле совпадение типов обязательно (за исключением implicit conversion), а для explicit, вообще конвертация будет проигнорирована, поскольку

ВладимирМНасколько крректно - это уже другой вопрос...

вот этот другой вопрос является основополагающим, хотим ли мы получить из данных мусор или нет.
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33804772
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tak, na etoj zhe pochve voznik drugoj vopros. A Update na kursori ne dejstvujet chtoli? Mne nuzhno chto-to vremennogo s buferami s dannimi, kotorij potom mozhno budet, srazu neskolko desjatkov zapisej, zagnatj v nuzhnije tablici i udallitj ego
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33805929
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Otkazalsja ja ot ispolzovanija kursora, delaju naprjamuju v tablicu. Teperj problemma sledujuschaja. Napisal sledujuschij kod:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
PUBLIC ARRAY temp_data[ 8 ]
SELECT gh_tables
GOTO TOP

SELECT field_values
REQUERY("field_values")

SELECT * from field_values insert INTO TABLE add_edit

UPDATE add_edit set data= 0 . 00 , mode_id= 1 

SELECT * from field_values insert INTO TABLE add_edit

UPDATE add_edit set data= 0 . 00 , mode_id= 2  WHERE mode_id!= 1 

Pervij raz kak i nado, dannije v tablice perepisivajutsja polnostju, a vot so vtorim Select problemmi. On stirajet danije s pervogo zahoda i pishet poverh novije. A mne oni nuzhni vse. estj li vozmozhnostj eto sdelatj? I esche, kak potom udalitj etu tablicu, ona ne prinadlezhit ni odnoj baze
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33805953
Возмущённый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по-русски нельзя написать?
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33806092
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем надо модифицировать данные ПОСЛЕ вставки? Разве нельзя это сделать ДО?

Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT *,  0 . 00  as data,  1  as mode_id ;
FROM gh_fields INTO CURSOR curTmp NOFILTER

SELECT add_edit 
APPEND FROM (DBF("curTmp"))
USE IN curTmp
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33806400
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
v obschem, zaparilsja ja s etimi kursorami, sdelal tak:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
PUBLIC rec_count
SELECT gh_tables
GOTO TOP

SELECT field_values
REQUERY("field_values")

rec_count=RECCOUNT("field_values")
PUBLIC ARRAY field_count[rec_count,  8 ]

COPY TO ARRAY field_count
SELECT add_edit
DELETE FROM add_edit
 FOR x= 1  TO rec_count
 	field_count[x,  7 ]= 0 . 00 
 	field_count[x,  8 ]= 1 
 ENDFOR 

APPEND FROM ARRAY field_count

 FOR x= 1  TO rec_count
 	field_count[x,  8 ]= 2 
 ENDFOR 

APPEND FROM ARRAY field_count
Vsje rabotajet :)
...
Рейтинг: 0 / 0
Insert into Glupij vopros
    #33813054
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi dj_raven!

В массиве есть свои ограничения (в частности по размеру)

Если идёт выборка в курсор командой SELECT то тебе поможет опция READWRITE -
иначе курсор будет только для чтения. Кроме того выборка - это всегда
создание нового курсора или новой таблицы - "добавить" через SELECT ничего
нельзя - только INSERT ... SELECT или APPEND FROM поможет.

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


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