|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Перемещение ОДНОЙ записи из одной таблицы в другую
Есть такой код:
Код:
DM1.ADOQueryTchm.SQL.Add('INSERT INTO Tchmp (TN, Name1, Name2, Name3, KolN, StazS, Klass, Uchastok, Talon, JoinTN, Phone, Address)'); DM1.ADOQueryTchm.SQL.Add('SELECT TN, Name1, Name2, Name3, KolN, StazS, Klass, Uchastok, Talon, JoinTN, Phone, Address'); DM1.ADOQueryTchm.SQL.Add('FROM Tchm'); Delphi+Access. Проблема в том, что он переносит ВСЕ записи из одной таблицы в другую! А как сделать, чтобы переносилась только та, на которой установлен курсор (которая выделена)? И только одна. |
#2
|
||||
|
||||
Как вообще можно курсор обозвать?
|
#3
|
||||
|
||||
Есть конструкция select top 1 *, но может и не подойти
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#4
|
||||
|
||||
Цитата:
|
#5
|
||||
|
||||
У меня так отображается первая запись из запрашиваемого диапазона выборки - как понял, звёздочку уберите раз вы все поля явно указываете
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#6
|
||||
|
||||
Тут звездочку нельзя использовать, так попробуйте:
Код:
SELECT top 1 TN, Name1, Name2, Name3, KolN, StazS, Klass, Uchastok, Talon, JoinTN, Phone, Address Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
||||
|
||||
Так копируется, но из трёх записей почему-то только вторая, независимо от того, где находится курсор в дбгриде.
Цитата:
|
#8
|
||||
|
||||
Цитата:
Код:
DM1.ADOQueryTchm.SQL.Add('INSERT INTO Tchmp (TN, Name1, Name2, Name3, KolN, StazS, Klass, Uchastok, Talon, JoinTN, Phone, Address)'); DM1.ADOQueryTchm.SQL.Add('VALUES (' + // Пример для числового поля ADOTable.FieldValues['TN'] + ', ''' + // а 'кавычки' ('' = ') для текстовых полей ADOTable.FieldValues['Name1'] + ''', ''' + ADOTable.FieldValues['Name2'] + ''', ''' + ADOTable.FieldValues['Name3'] + ''', ''' + ADOTable.FieldValues['KolN'] + ''', ''' + ADOTable.FieldValues['StazS'] + ''', ''' + ADOTable.FieldValues['Klass'] + ''', ''' + ADOTable.FieldValues['Uchastok'] + ''', ''' + ADOTable.FieldValues['Talon'] + ''', ''' + ADOTable.FieldValues['JoinTN'] + ''', ''' + ADOTable.FieldValues['Phone'] + ''', ''' + ADOTable.FieldValues['Address'] + ''')'); З.Ы. Может есть вариант и попроще, но я такого в справочнике по SQL так и не нашёл Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
|||
|
|||
Код:
var tmpid: string; //Временная переменная begin tmpid := DM1.ADOTable.FieldsByName('TN').AsString; //Получение ID выбранного поля(Расчет на то, что TN ключевое уникальное поле) DM1.ADOQueryTchm.SQL.Add('INSERT INTO Tchmp (TN, Name1, Name2, Name3, KolN, StazS, Klass, Uchastok, Talon, JoinTN, Phone, Address)'); DM1.ADOQueryTchm.SQL.Add('SELECT TN, Name1, Name2, Name3, KolN, StazS, Klass, Uchastok, Talon, JoinTN, Phone, Address'); DM1.ADOQueryTchm.SQL.Add('FROM Tchm WHERE TN=' + Trim(tmpid)); //Добавление условия к SQL-запросу end; Последний раз редактировалось gewasop, 06.05.2015 в 15:12. |