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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2010, 18:40   #1
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
Восклицание SQL-выборка!

Помогите пожалуйста!
Имеется таблица "Осужденные" в которой надо выбрать записи по полю "работа". Раньше делал по индексу (счетчику), но если записи удалялись и добавлялись новые, то индекс теряет правильный порядок (1,2,3,5,7 и т.д.).

Было так:

mainform.FindQuery.sql.add('select* from Осужденные WHERE работа LIKE '''+mesto+'''')

где mesto - это номер индекса, но мне надо сделать выборку по самому месту работы (т.е. например "больница"), причем само место работы присваивается переменной (mestol). Соответствующий запрос:

mainform.FindQuery.sql.add('select* from Осужденные WHERE работа LIKE mestol')

не работает, подскажите как быть.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 21.07.2010, 18:59   #2
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

причем тут вообще ключевое поле????


так че делает?

select* from Осужденные WHERE работа = :mestol

FindQuery.ParamByName('mestol').AsS tring := 'супер_место работы';
FindQuery.Open();
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 21.07.2010, 19:00   #3
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Забыл написать, что в таблице "Осужденные" в поле "работа" идет связь на таблицу "Работа" по ключевому полю (((( поэтому такие косяки
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 21.07.2010, 19:05   #4
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
Забыл написать, что в таблице "Осужденные" в поле "работа" идет связь на таблицу "Работа" по ключевому полю (((( поэтому такие косяки
а по ключевому полю искать никак?

взять из справочника код работы и использовать его для поиска?
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 21.07.2010, 19:11   #5
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Вот с этого места, если можно, поподробнее... Как взять из справочника код работы?
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 21.07.2010, 19:15   #6
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
Вот с этого места, если можно, поподробнее... Как взять из справочника код работы?
ну приблизительно так-же как и имя работы

давайте структуру таблиц, там видно будет
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 21.07.2010, 19:15   #7
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Есть вариант другой: как зная значение поля "работа" в таблице "Работа" получить значение счетчика соответствующее этой записи?
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 21.07.2010, 19:16   #8
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
Есть вариант другой: как зная значение поля "работа" в таблице "Работа" получить значение счетчика соответствующее этой записи?
а как вообще определяется имя работы?
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 21.07.2010, 19:17   #9
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

т.е. структура таблицы "работа" такова:

key работа
1 УПУ-1
2 УПУ-2
4 ХлебЗавод
5 ХО
6 УФСИН
7 Подсобка
8 Хаёв
9 ЭМГ
10 Столовая
12 Больницы
13 КАР
14 Карантин

Если мне известно например "Больницы", то как узнать (можно даже по Showmessage) значение Key (это счетчик) в этой записи?
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 21.07.2010, 19:21   #10
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
т.е. структура таблицы "работа" такова:

key работа
1 УПУ-1
2 УПУ-2
4 ХлебЗавод
5 ХО
6 УФСИН
7 Подсобка
8 Хаёв
9 ЭМГ
10 Столовая
12 Больницы
13 КАР
14 Карантин

Если мне известно например "Больницы", то как узнать (можно даже по Showmessage) значение Key (это счетчик) в этой записи?
да это как 2 пальца обасфальт...

kod : integer;

TableRabota или
kod:= QueryRabota.FieldByName('key').AsIn teger;

QuerySelect.SQL.Text :='select* from Осужденные WHERE key_работа = :super_kod

FindQuery.ParamByName('super_kod'). AsInteger := kod;
FindQuery.Open()
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка выборка с таблицы с отношением многие-ко-многим 8alig8 БД в Delphi 2 24.06.2010 12:21
ADOQuery + SQL-выборка по дате!!! $T@LKER БД в Delphi 14 19.04.2010 11:34
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15
Выборка информации из 2 таблиц (SQL) frai БД в Delphi 10 10.11.2007 17:38