Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi7.SQL.AccessXP / 11 сообщений из 11, страница 1 из 1
04.11.2003, 17:17
    #32315147
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
Есть таблица. Мне нужно скопировать одну (или несколько) записей из этой таблицы в эту же таблицу. Т.е. продублировать. Но одно значение в полях копируемых записей надо заменить. Я делал так:

INSERT INTO Table1
SELECT * FROM Table1 WHERE Num = :NumP

Все работает, но вопрос в том, что мне надо некое поле во всех вставляемых записях поменять. Т.е. если бы при этом можно было как-то указать VALUES принудительно - было бы неплохо.
...
Рейтинг: 0 / 0
05.11.2003, 07:56
    #32315530
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
Код: plaintext
1.
2.
INSERT INTO Table1 
SELECT  1  AS NewValueForField1, Field2..., FieldN
FROM Table1 WHERE Num = :NumP 
...
Рейтинг: 0 / 0
05.11.2003, 17:10
    #32316456
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
to pkarklin:

Стоп. Это ж вроде не то. Если использовать AS, то просто будут менятся заголовки полей, а не значения.
...
Рейтинг: 0 / 0
06.11.2003, 07:47
    #32316784
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
Ты просил:

автор писал:мне надо некое поле во всех вставляемых записях поменять

Приведенный пример скопирует данные, но вместо исходного значения для первого поля запишет 1. Ну или что, там тебе надо. Алиас для поля можно не писать. Это я чтоб понятней откуда ного растут было.
...
Рейтинг: 0 / 0
06.11.2003, 17:14
    #32317461
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
SELECT 1 AS NewValueForField1, Field2..., FieldN
А зачем вообще AS ?
А если надо не в первое поле 1 записать а в третье?
...
Рейтинг: 0 / 0
07.11.2003, 13:52
    #32317857
Miktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
2глюк99
автор писал:А зачем вообще AS ?
А если надо не в первое поле 1 записать а в третье?
глюк №100! поздравляю!
...
Рейтинг: 0 / 0
07.11.2003, 14:39
    #32317869
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
Для одной записи я бы сделал так. В предположении, что надо менять поле Num и поле Num является уникальным. Если Вы опишете ЗАЧЕМ это надо более подробно, то возможны и другие решения.

INSERT INTO Table1 (Num, Fileld1,Fileld2)
SELECT :NewNum, Fileld1,Fileld2 FROM Table1 WHERE Num = :NumP

Т.е. надо явно указывать имена полей
...
Рейтинг: 0 / 0
07.11.2003, 16:27
    #32317926
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
to Miktor:
А по существу вопроса есть что сказать?


to Cat2:
Как скопировать одну запись - понятно: INSERT INTO Table1 VALUES(:A, :B, :C)
В параметры запихиваем значения и вперед. Речь о нескольких записях.

Есть записи, объединенные одним и тем же значением поля - номером группы. Мне нужно создать еще одну группу ОДИНАКОВЫХ записей (т.е. с одинаковыми значениями полей), но поменять у них номер группы. Т.е. скопировать. Что там потом будет юзер делать с ними - это неважно. Он может оставить их как есть (с полной идентичностью), но скорее всего поменяет некоторые данные в новой группе.
...
Рейтинг: 0 / 0
07.11.2003, 18:43
    #32317967
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
Что-то мне не совсем понятно. Похоже, что у Вас ненормализованная база. Ну да это, в данном контексте, неважно.

Приведенный мною ранее запрос и решает Вашу задачу. Я же написал, что нужно ЯВНОЕ указание ВСТАВЛЯЕМЫХ полей, а селекте вместо Num - константа.
...
Рейтинг: 0 / 0
07.11.2003, 18:47
    #32317969
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
Ок,
Спасибо, попробую.
...
Рейтинг: 0 / 0
07.11.2003, 20:13
    #32317993
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi7.SQL.AccessXP
Насчет явного указания полей - это я перестраховался. Просто я так делаю на автомате. Вдруг структура таблицы измениться? Как правило, в моих запросах всегда есть несколько таблиц. И использование * чревато.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi7.SQL.AccessXP / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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