powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / INSERT
11 сообщений из 11, страница 1 из 1
INSERT
    #32447691
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как правильно написать INSERT???
Если дано две одинаковые таблицы и надо из одной таблицы вставить в другую
все записи по условию...
Пишу:
INSERT INTO a1 SELECT a2* FROM a2 WHERE a2.kod >= 20
Меня кроет трехэтажкой{:-)}

Плиз хелп...
...
Рейтинг: 0 / 0
INSERT
    #32447696
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
APPEND FROM
...
Рейтинг: 0 / 0
INSERT
    #32447706
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hel!Riser:
Мне надо одной командой...
Что б указывалось с какой таблицы в какую...
Желательно без селекта:
селе а1
вставь из а2 где то-то=тому-то
...
Рейтинг: 0 / 0
INSERT
    #32447707
АлександрК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INSERT INTO a1 SELECT * FROM a2 WHERE a2.kod >= 20
...
Рейтинг: 0 / 0
INSERT
    #32447715
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
APPEND FROM a2 FOR a2.kod >=  20  
...
Рейтинг: 0 / 0
INSERT
    #32447733
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hel!Riser:
Перед APPEND FROM
надо выбрать таблицу в какую впихиваем...
А мне эт не надо...

АлександрК:
У меня так и стоит...
INSERT INTO a1 SELECT a2* FROM a2 WHERE a2.kod >= 20
Ругается че много аргументов...
количество полей при селекте = 183...
Может есть какие-то ограничения на кол. полей
...
Рейтинг: 0 / 0
INSERT
    #32447831
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А так срабатывает:
my_fild_insert = ''
FOR my_ins_val = 1 TO FCOUNT(my_insert_alias)
my_fild_insert = my_fild_insert + IIF(!EMPTY(my_fild_insert),',','') + FIELD(my_ins_val,'a1')
ENDFOR
IF !EMPTY(my_fild_insert)
INSERT INTO a1(&my_fild_insert) sele &my_fild_insert From a2 Where kod >= 20
ENDIF

Почему???
И в чем разница с???
INSERT INTO a1 SELECT * FROM a2 WHERE a2.kod >= 20 && Ошибка Слишком много аргументов...
...
Рейтинг: 0 / 0
INSERT
    #32449171
SSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSV
Гость
Во-первых, такая конструкция
Код: plaintext
insert into table1 select .. from table2 ...

появилась только кажется с VFP8.
Во-вторых, ограничения на количество полей в SELECT SQL = 255

автор
Почему???
И в чем разница с???
INSERT INTO a1 SELECT * FROM a2 WHERE a2.kod >= 20 && Ошибка Слишком много аргументов

Вероятно, несоответствие полей или их количества в исходной и приемной таблицах Попробуй
Код: plaintext
1.
INSERT INTO a1 (field1,field2,..fieldn) SELECT (field1,field2,..fieldn) FROM a2 WHERE a2.kod >=  20 
...
Рейтинг: 0 / 0
INSERT
    #32449589
andrew_Pr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to IgorProgrammer
>>И в чем разница с???
Видимо в числе полей в исходной и принимающей таблицах.
В этом плане как раз Append From очень удобен.
Лишние поля он просто игнорирует.

>>Мне надо одной командой...
>>Что б указывалось с какой таблицы в какую...
>>Желательно без селекта:
А чем вызвано такое странное требование?
Что страшого произойдет, если написать
Код: plaintext
1.
2.
3.
m.oldArea=Select()
Select TargetTab
Append From SourceTab
Select m.oldArea
...
Рейтинг: 0 / 0
INSERT
    #32453482
Lexa-i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня такая же проблема "две одинаковые таблицы..."
работаю в Делфях 5 через АДО с таблицами фокса
подскажите ребята как добавить быстро (с элементами высшего пилотажа) некие записи из одной таблицы в другую..
"insert into a1 from select * from a2" говорит синтаксическую ошибку

ЗЫ Вроде проблемка то простая ... а вот решение ... целый день убил так и несделал... че мне циклами что ли их сверять и добавлять, а если и так делать то как мне добавлять допустим полную запись в другую таблицу не зная количества и названия полей..
подсобите а совет
...
Рейтинг: 0 / 0
INSERT
    #32454032
Nikita_MV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну если циклом, то примерно так )
Где Base это обьект ADODB.Recordset
(на 1С писано....)

Процедура ЗаполнитьПустыми(Base)
Для К=0 По (Base.Fields.Count()-1) Цикл
Если (Base.Fields(К).Type = 133) Тогда
Base.Fields(К).Value = '';
ИначеЕсли (Base.Fields(К).Type = 129) Тогда
Base.Fields(К).Value = "";
ИначеЕсли (Base.Fields(К).Type = 131) Тогда
Base.Fields(К).Value = 0;
ИначеЕсли (Base.Fields(К).Type = 11) Тогда
Base.Fields(К).Value = 0;
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ЗаполнитьПустыми()
Как запросом, не знаю...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / INSERT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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