Форум: "Базы";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
ВнизПроблемы с INSERT :( Найти похожие ветки
← →
Olfi (2002-01-10 11:05) [0]Нужно вставить несколько столбцев из одной таблицы в другую (пустую)... Вставляет, но пишет об ошибке!
insert into "01.01.02.db"
(Product)
select product from "08.01.02.db"
Ну где тут может быть ошибка!?
← →
roottim (2002-01-10 11:16) [1]а так!!
insert into "01.01.02.db"
(Product)
select t.product from "08.01.02.db" t
← →
Olfi (2002-01-10 12:08) [2]Так тоже...
← →
Alexandr (2002-01-10 12:24) [3]какая ощибка-то?
← →
koks (2002-01-10 12:49) [4]Надо определиться: вставить столбец или добавить записи...
Если добавить записи:
INSERT INTO ":alias_name:01.01.02.db"
SELECT product FROM "08.01.02.db"
При этом будут добавляться новые записи в табл. 01.01.02, в которых будет заполняться поле product (оно естейственно должно быть)... А нет ли у тебя в 01.01.02 обязательных полей, отличных от product .....
← →
Olfi (2002-01-11 10:45) [5]Объясню ситуацию...
Есть две БД. У них одинаковая структура, то есть поля. Нужно вставить из одной столбец с записями в другую.
Только что пробовал так:
insert into ":product:01.01.02.db" select product from "08.01.02.db"
Так тоже не хочет... Ошибок показывает ещё больше... Что делать?
← →
Oracle (2002-01-11 10:47) [6]Поменять все микросхемы надо
← →
roottim (2002-01-11 11:05) [7]всех запутал!
Бд это не таблица
опиши конкретнее...
типа есть 2 экземпляра БД
в БД..(алиас ее) табл TableName1... структурку....
в др БД табл TableName2... структурку....
а потом можно и про селект подумать
:))))
← →
kat (2002-01-11 11:59) [8]Раз вставляет и пишет об ошибке, то может быть надо написать Query.ExecSQL, а не Query.Open
← →
Alexandr (2002-01-11 12:10) [9]2kat :
По - моему это как-раз его случай!
Все гениальное просто!
← →
Olfi (2002-01-11 12:29) [10]Стуктура ? :) В каждой БД больше 100 полей... Из них 30 нужно копировать в Бд за следующий день. На примере пытаюсь разобраться, как скопировать хотя бы одно поле записей.
Всё гениально и просто? Согласен... Но как это сделать? Здесь же нет ничего сверхестественного. Просто столбец из одной БД скопировать в другую!
← →
Olfi (2002-01-11 12:32) [11]rootim: Я выше писал, какие поля... в обеих БД. Они одинаковые.
← →
Alexandr (2002-01-11 12:39) [12]у тебя же копируется...
Но выскакивает ошибка видимо типа "не могу открыть датасет" или
"не могу создать курсор".
ты как запрос запускаешь по Open? Да? И чего ты отрыть собираешься?
Тебе надо ExecSQL запускать
← →
roottim (2002-01-11 12:42) [13]у БД не полей!!!
поля у таблиц!...
1. эти 2 таблицы в разных БД или в одной?
2. тренеруешся на таблице состоящим из одного поля?
3. если не 2. то напиши хоть ключевые и нот нул поля!... без
них невозможно вставить запись....
поняти вставки колонки нет!!...
← →
roottim (2002-01-11 12:43) [14]у БД нет полей!!!
поля у таблиц!...
1. эти 2 таблицы в разных БД или в одной?
2. тренеруешся на таблице состоящим из одного поля?
3. если не 2. то напиши хоть ключевые и нот нул поля!... без
них невозможно вставить запись....
поняти вставки колонки нет!!...
← →
roottim (2002-01-11 12:44) [15]:)) не успел тормознуть :))
← →
Alexandr (2002-01-11 12:45) [16]roottim:
Посмотри начало. У него вставляет!
кстати какой программой Olfi пользуется?
← →
kat (2002-01-11 12:46) [17]Query.Close;
Query.SQL.Clear;
Query.SQL.Add("insert into "01.01.02.db"");
Query.SQL.Add(" (Product)");
Query.SQL.Add(" select product from "08.01.02.db" ");
Query.ExecSQL;
И все.
← →
roottim (2002-01-11 13:09) [18]>Alexandr
>Посмотри начало. У него вставляет!
если вставляет.. то причем тут вообще SQL
чего за ошибка?...
← →
Olfi (2002-01-11 14:01) [19]roottim:
В одной БД одна таблица. Тренеруюсь прямо на ней.
Насколько я знаю, вставить можно либо одну строку , если писать Values, либо много строк, - через Select.
Alexandr: в смысле? какой программой? Я на Делфи прогу пишу, ты её имеешь ввиду?
kat: Что?????????? Так я этот же запрос вставлял в TUpdateSQL!!!
его что, в сам TQuery писать надо?
И ошибка возникает после UpdateSql1.ExecSQL(ukInsert);
Кажется - "Update Failed" .
Только что писал:
query1.close;
sql1.InsertSQL.Clear;
sql1.insertsql.add ("insert into "01.01.02.db" (product, ost1,ost2) select product, ost1, ost2 from "08.01.02.db" ");
query1.ExecSQL;
query1.open;
(SQL1 : TUpdateSql)
Ошибок никаких не было!!! Только оно ничего не вставляет! :(
Не понятно, что оно вообще таким образом делает :)
← →
Alexandr (2002-01-11 14:13) [20]query1.close;
sql1.InsertSQL.Clear;
sql1.insertsql.add ("insert into "01.01.02.db" (product, ost1,ost2) select product, ost1, ost2 from "08.01.02.db" ");
query1.ExecSQL;
query1.open;
это бред.
Update Failed говорит, что у тебя обновилось в таблице более одной строки, а ждали, что обновится одна и тебе сказали: чего-то не так.
тебе же kat сказала как надо...
Query.Close;
Query.SQL.Clear;
Query.SQL.Add("insert into "01.01.02.db"");
Query.SQL.Add(" (Product)");
Query.SQL.Add(" select product from "08.01.02.db" ");
Query.ExecSQL;
и все работать будет!
Если ты чего-то не понимаешь, то прислушивайся чему тебя учат и не удивляйся. И не спорь
← →
roottim (2002-01-11 14:15) [21]начнем с того... хелп начто сделан?
если по UpdateQuery то проседура выглядит так
procedure ExecSQL(UpdateKind: TUpdateKind);
ukDelete
ukInsert
ukModify
это одно!...
второе.. что значит одна таблица...
если ты перекачиваеш данные.. то их должно быть 2...
INSERT не создает новую таблицу!... только записи вставляет...
для создания новой пользуются CREATE TABLE
далее если ты делаеш гетородинные запросы...(касательно 2 БД)
что позволяет делать БДЕ то там надо писать ":lias_DB:TableName"
а если ты используеш 2 таблицы в одной БД... ничего этого не надо!
← →
Olfi (2002-01-11 14:16) [22]YYYYYEEEEEESSSSSSSS!!!!!!!!!!!!!!!!!!!
Проблема решена следующим кодом:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("insert into "01.01.02.db"");
Query1.SQL.Add(" (Product, pkol1,pkol2,pkol3,ost1)");
Query1.SQL.Add(" select Product, pkol1,pkol2,pkol3,ost1 from "08.01.02.db" ");
Query1.ExecSQL;
Query1.sql.clear;
Query1.SQL.Add("Select * From "01.01.02.db" as normal ; ");
Query1.open;
Ошибка заключалась в том, что я писал sql код в TUpdateSql , а не в TQuery!
Искренне благодарю, всех, кто мне помог решить эту проблему :):):)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.005 c