|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как вставить строку в столбец таблицы
Здравствуйте!!
Подскажите, пожалуйста, как с одной таблицы со строки вставить данные в столбце другой? Структура таблиц такая Первая DSO Kodo Name Sin KN KG fs lST Ld 1 5 2 10 3 20 4 30 5 40 6 50 7 60 8 75 Это таблица расчета остойчивости судна Еще у меня есть поле Edit8? в котором у меня осадка судна - она меняется в зависимости от веса судна при погрузке Вторая - Stab ? здесь даны значения KN (смотри первую таблицу) в зависимости от осадки Kod D Draft 5 10 20 30 40 50 60 75 1 3 1,205 2,394 4,559 6,162 7,382 8,239 8,538 8,33 Вот по изменению поля Edit мне надо встаить соответствующие осадке плечи формы KN по градусам от 5 до 75? Я пишу так Код: Код:
procedure TForm6.Edit8Change(Sender: TObject); begin Query3.Active:=false; query3.SQL.Clear; Query3.SQL.Text:= 'INSERT INTO DSO.DB (KN) SELECT (5,10,20,30,40,50,60,75) FROM Stab.DB WHERE Draft = ''' + Edit8.Text + ''''; query3.ExecSQL; end; Но пишет ошибку! Буду рада помощи! Последний раз редактировалось YuliyaKar, 19.11.2013 в 10:48. |
#2
|
||||
|
||||
http://g.zeos.in/?q=%D1%81%D0%B8%D0%...insert%20mysql
уделите внимание своему написанию вопросов я, например, фиг че понял, а может, не захотел понимать Я за здоровый экстрим! Спасибо за "спасибо") |
#3
|
|||
|
|||
Так я по этой схеме и писала, что вы мне прошлый раз скидывали!
Вся загвоздка в том, что он не хочет вставлять строку в столбец. ТО есть данные в одной таблице в виде строки и они по количеству совпадают с данными, которые должны быть в другой таблице в столбце. Но он возмущается на названия полей столбцов (5,10,20,30,40,50,60,75). Пишу словами смысл запроса? Вставить в таблицу DSO.DB в столбец KN выбранную запись, данные которой находятся в столбцах (5,10,20,30,40,50,60,75) с таблицы Stab.DB если данные со столбца Draft равны введенному в = ''' + Edit8.Text + ''' ' значению. По логике. все так же как я и перебрасывала строки, но причина в том, что я пытать строку вставить в столбец" Последний раз редактировалось YuliyaKar, 19.11.2013 в 15:42. |
#4
|
||||
|
||||
а?10 символов
Я за здоровый экстрим! Спасибо за "спасибо") |
#5
|
|||
|
|||
Эхх....неужели я так непонятно ставлю вопросы?
|
#6
|
||||
|
||||
там ссылка неспроста
а по ссылке первое найденное - само то) прочитай, пожалуйста вот смотри, диалог: - СУБД! а ну-ка вставь в таблицу DSO.DB в ОДНО поле KN кучу полей (5,10,20,30,40,50,60,75) - ??? - вот, блин, тупая база! Я за здоровый экстрим! Спасибо за "спасибо") |
#7
|
|||
|
|||
Та я прекрасно понимаю, что я чисто теоретически не могу так вставить, так как написано, что команда Insert вставляет только строки. И я нигде не нашла, чтоб кто-то с таким стыкался.
Я посмотрела эту ссылку уже несколько раз! И так и не поняла как это сделать Код:
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name,...)] SELECT ... По вот этой структуре пишу Код:
Insert INTO DSO.db (KN) select (10) FROM Stab.db where DRAFT='''+Edit8.Text+''''; Попробую одно вставить! Последний раз редактировалось YuliyaKar, 19.11.2013 в 18:02. |
#8
|
||||
|
||||
Можно вот так сделать, но это как-то не камильфо смотрится:
Код:
insert into Table1 (Kod) (select 5 union select 10 ... union select 75) Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
Попробовать можно!
Преподаватель сказал: Еще есть вариант создать временную таблицу и туда сначала считать со строки в столбец, а уже оттуда вставить в нужную таблицу. Но по большому счету это тоже самое! Попробую как вы написали! |
#10
|
|||
|
|||
Попробовала встатвить хоть одно значение
Цитата:
Последний раз редактировалось YuliyaKar, 28.11.2013 в 11:50. |
#11
|
|||
|
|||
Ну и опять все к тому же. Ну никак не получается у меня сделать эту вставку строки в столбец
Выбивает ошибку Type mistmach in expression Я разбила и сделала вот так Код:
Query3.Active:=false; query3.SQL.Clear; query3.SQl.Text:='INSERT INTO DSO.db (KN)'; query3.SQL.Text:='SELECT (10) FROM Stab.db WHERE DRAFT ='''+edit8.Text+''' UNION select (20) FROM Stab.db WHERE DRAFT ='''+edit8.Text+''' UNION select (30)FROM Stab.db WHERE DRAFT ='''+edit8.Text+''''; //FROM Stab.db WHERE DRAFT ='''+edit8.Text+''''; query3.ExecSQL; if Query3.IsEmpty then raise Exception.Create('Ничего не найдено') else edit10.Text:= Query3.FieldByName('10').AsString; table5.Close; table5.Open; |
#12
|
|||
|
|||
А в цикле insert?
или хранимую процедуру которая все делает. Последний раз редактировалось Rus_boz, 31.01.2014 в 14:41. |
#13
|
||||
|
||||
почти 2 месяца прошло
Я за здоровый экстрим! Спасибо за "спасибо") |
#14
|
|||
|
|||
query3.SQl.Text:='INSERT INTO DSO.DB (KN) SELECT 10 FROM Stab.DB WHERE DRAFT = ''' + Edit8.Text + '''';
Чегойто здесь не так ) а попробуй query3.SQl.Text:='INSERT INTO DSO.DB (KN) SELECT 10 FROM Stab.DB WHERE DRAFT ='+''''+Edit8.Text+''''+';'; |