|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.10.2010, 11:49 | #1 |
Пользователь
Регистрация: 05.05.2010
Сообщений: 35
|
Выборка из таблицы
Есть две таблицы H06090 и SH01007, в них имеется поле DSE(содержит строковые записи), так же имеется переменная dse с заданным значением.
Задача состоит в следующем: Если в H06090DSE найдено заданное dse, то если в SH01007DSE тоже найдено заданное dse, то необходимо из таблицы H06090 из поля DSE выбрать все записи с заданным dse(DSE в таблице может повторятся) и записать в таблицу prom. Использую Delphi7, компоненты Table, datasource. Прога компилится, но в таблицу prom ничего не записывается, хотя в H06090 точно есть такая запись. Подскажите в чем может быть проблема. Ниже приведен код Код:
Последний раз редактировалось Stilet; 13.10.2010 в 12:07. |
13.10.2010, 12:21 | #2 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Почему так не любишь SQL?
Код:
Или это из 1С? PS. Цитата:
Последний раз редактировалось _SERGEYX_; 13.10.2010 в 12:30. |
|
13.10.2010, 13:12 | #3 | |
Пользователь
Регистрация: 05.05.2010
Сообщений: 35
|
_SERGEYX_, Спасибо за помощь. Еще 1 глупый вопрос - как записать данные из query в prom? А точнее как обратиться к полям в query?
В случае Код:
PS. Имена таблиц изначально были такие в БД, менять их нельзя... но я привык уже. Цитата:
|
|
13.10.2010, 13:22 | #4 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
По индексу обращаться надо. Сделай так
Sql.add('select field1,field2,field3 from H06090 where DSE = '+ dse); где field1,field2,field3 имена нужных полей и далее обращайся к полям по индексам первое поле = Query.Fields[0].AsString; //или AsInteger или AsFloat и т.п. //в зависимости какое значение тебе нужно второе поле = Query.Fields[1].AsString; третье поле = Query.Fields[2].AsString; Цитата:
|
|
13.10.2010, 13:22 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
tb_promDSE:=query1.FieldByName('Имя поля');
Не работает? Какую ошибку пишет?
I'm learning to live...
|
13.10.2010, 13:40 | #6 |
Пользователь
Регистрация: 05.05.2010
Сообщений: 35
|
_SERGEYX_, Спасибо, теперь все работает.
Stilet, Я имел ввиду, что после точки в списке возможных функций и процедур просто нет FieldByName, следовательно и работать он не будет. |
13.10.2010, 14:01 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Нет его не потому что его нет а потому что Делфи просто не предполагает что ты его будешь вызывать. пиши смело, не обращай внимание на подсказки Делфи, она не всегда показывает все что нужно.
I'm learning to live...
|
|
13.10.2010, 14:22 | #8 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Цитата:
Есть таблица Table, в ней числовое поле Summa. Query пустой. Делаю запрос Код:
Начинаю проверять - вернулось имя поля TableMax_Of_Summa. Почему это происходит я не знаю. Может такие косяки бывают только с агрегатными функциями? Кажется это было в Paradox-е. |
|
13.10.2010, 14:47 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
т.е.: select max(Summa) as TableMaxOfSumma from Table и оно (имя поля) НИКОГДА (само по себе) не станет другим... |
|
13.10.2010, 14:55 | #10 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Serge_Bliznykov, полностью согласен. Теперь так и делаю.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выборка выборка с таблицы с отношением многие-ко-многим | 8alig8 | БД в Delphi | 2 | 24.06.2010 12:21 |
Выборка данных из таблицы | SlavaSH | БД в Delphi | 20 | 14.10.2009 12:32 |
Выборка из таблицы | Kenny Spark | Microsoft Office Excel | 4 | 16.07.2009 15:15 |
выборка из таблицы | Screame | Microsoft Office Excel | 2 | 12.07.2009 19:55 |
Выборка из таблицы | ivp88 | БД в Delphi | 5 | 12.01.2008 14:36 |