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

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

АлександрК:
У меня так и стоит...
INSERT INTO a1 SELECT a2* FROM a2 WHERE a2.kod >= 20
Ругается че много аргументов...
количество полей при селекте = 183...
Может есть какие-то ограничения на кол. полей
...
Рейтинг: 0 / 0
18.03.2004, 17:21
    #32447831
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT
А так срабатывает:
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
19.03.2004, 13:24
    #32449171
SSV
SSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT
Во-первых, такая конструкция
Код: 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
19.03.2004, 15:52
    #32449589
andrew_Pr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT
to IgorProgrammer
>>И в чем разница с???
Видимо в числе полей в исходной и принимающей таблицах.
В этом плане как раз Append From очень удобен.
Лишние поля он просто игнорирует.

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

ЗЫ Вроде проблемка то простая ... а вот решение ... целый день убил так и несделал... че мне циклами что ли их сверять и добавлять, а если и так делать то как мне добавлять допустим полную запись в другую таблицу не зная количества и названия полей..
подсобите а совет
...
Рейтинг: 0 / 0
24.03.2004, 06:19
    #32454032
Nikita_MV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT
Ну если циклом, то примерно так )
Где 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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / INSERT / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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