![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |