Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2015, 17:35   #1
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию Копирование некоторых строк из одного ado в другой

Привет!)
Есть таблица ado,в field1 числа от 1 до 200. Как при помощи sql запроса из этой таблицы вставить записи в другую, причём только записи которые равны 50,100,150 и 200?
Спасибо.
Ernest027 вне форума Ответить с цитированием
Старый 09.09.2015, 17:41   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Есть формат INSERT-а c запросом. Им и вставляй

Например

https://msdn.microsoft.com/ru-ru/lib...=sql.120).aspx
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.09.2015, 17:56   #3
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Код:
insert into table2.field1 select field1 from table1 where field1=50 and field1=100 and field1=150 and field1=200
так?)

Последний раз редактировалось Ernest027; 09.09.2015 в 18:51.
Ernest027 вне форума Ответить с цитированием
Старый 09.09.2015, 20:08   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

У одной записи не может быть значение поля ОДОВРЕМЕННО (из-за указанных Вами and) равным разным величинам. Сами догадаетесь, что поправить ?
И запрос немного некорректен
Код:
insert into table2 (field1) select ...
phomm вне форума Ответить с цитированием
Старый 09.09.2015, 20:28   #5
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Код:
insert into table2 (field1) select field1 from table1 where field1 in (50,100,150,200)
так?
Ernest027 вне форума Ответить с цитированием
Старый 09.09.2015, 21:12   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

так. И встречный вопрос. А остальные поля заполнять(копировать) не надо?!
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.09.2015, 21:43   #7
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Надо)
Код:
insert into table2 (field1,field2) select field1,field2 from table1 where field1 in (50,100,150,200)
а если число нужно вытащить равное тому что в edit?
Код:
insert into VibrationCircle (f,a,v,d) select f,a1,v1,d1 from Vibration where f in ('+QuotedStr(FloatToStr(StrToFloat(Edit3.Text)))
так не выходит, говорит неправильный синтаксис около "50", это в случае если в edit стоит число 50.

нужные числа вывожу в stringgrid и из одной бд в другую надо скопировать записи, которые соответсвуют значениям из stringgrid. делаю так, но не работает
Код:
insert into VibrationCircle (f,a,v,d) select f,a1,v1,d1 from Vibration2 where f ='+QuotedStr(StringGrid1.Cells[1,i])

Последний раз редактировалось Stilet; 10.09.2015 в 11:52.
Ernest027 вне форума Ответить с цитированием
Старый 10.09.2015, 09:48   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
sIn := '';
for i:=0 to StringGrid1.RowCount-2 do
     sIn := sIn + StringGrid1.Cells[1,i]+',';
sIn := sIn + StringGrid1.Cells[1,StringGrid1.RowCount-1];

.... := 'insert into VibrationCircle (f,a,v,d) select f,a1,v1,d1 from Vibration2 where f in ( '+sIn+' )';
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.09.2015, 11:43   #9
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

а почему не работает так?
Код:
for i:= 1 to 8 do begin
...
insert into VibrationCircle (f,a,v,d) select f,a1,v1,d1 from Vibration2 where f in('+QuotedStr(StringGrid1.Cells[1,i])+')
Ernest027 вне форума Ответить с цитированием
Старый 10.09.2015, 11:55   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а почему не работает так?
Наверное потому, что так ты на каждую итерацию дергаешь запрос, а это бессмысленно и не эффективно. К тому же не очень понятно что именно формируется в строку запроса.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование с одного листа на другой Dramen Microsoft Office Excel 1 06.09.2015 21:09
Копирование необходимого количества строк с одного листа на другой! mnemonix Microsoft Office Excel 3 13.09.2013 13:26
Копирование строк из одного файла в другой с соблюдением условия allichka Microsoft Office Excel 6 19.05.2011 16:25
Копирование к строк из одного файла в другой A_Orlov Помощь студентам 1 15.06.2010 14:49
Сортировка в StringGrid'е, копирование строк из одного SG в другой monushka Помощь студентам 3 29.10.2007 23:54