Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 20.11.2013, 17:58
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

по идее так можно попробовать (Firebird):
Код:
SELECT FIRST 1 number
FROM orders
WHERE number < :number
ORDER BY number DESC
поскольку СУБД не указана - подгонять под себя нужными операторами
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
YuliyaKar (28.11.2013)
  #17  
Старый 20.11.2013, 18:03
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Страдалецъ
Код:
query3.SQl.Text:='select *FROM Stab.DB where Dispt  <= ''' + Edit6.Text + ''' ORDER BY Dispt DESC';
Или я че-то не понимаю или лыжи не едут. Это как же вы таким запросом получите граничные значения? Вы получите так все что меньше или равно критерию. Зачем вы еще и равно делаете, мне неясно.
По поводу равно я согласен, но ни о каких граничных значениях в усливии задания речи не идёт. Там нужно выбрать значение которое (как я понял) наиболее близкое (но не превышающее) тому что введено в Edit.
Вот так должно работать:
Код:
Query3.Close;
Query3.SQL.Text:='SELECT TOP 1 Dispt FROM Stab.DB WHERE Dispt  < ''' + Edit6.Text + ''' ORDER BY Dispt DESC';
Query3.Open;

if Query3.IsEmpty then
  raise Exception.Create('Ничего не найдено')
else
  Edit8.Text := Query3.FieldByName('Dispt').AsString;
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
YuliyaKar (28.11.2013)
  #18  
Старый 20.11.2013, 18:08
YuliyaKar YuliyaKar вне форума
Прохожий
 
Регистрация: 13.11.2013
Сообщения: 37
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Да, именно! Близкое, но не превышает значение Edit!!! ТО что раньше было не работает,он выводит все равно только первое попавшееся.
Сейчас этот вариант попробую!
Ответить с цитированием
  #19  
Старый 20.11.2013, 18:13
YuliyaKar YuliyaKar вне форума
Прохожий
 
Регистрация: 13.11.2013
Сообщения: 37
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Пишет Invalid use of keyword!
Ответить с цитированием
  #20  
Старый 20.11.2013, 18:16
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от YuliyaKar
Пишет Invalid use of keyword!
Похоже что используется BDE. Тогда попробуй убрать в запросе "TOP 1".
Кстати, а поле "Dispt" какого типа? Строкового или числового?
Ответить с цитированием
  #21  
Старый 20.11.2013, 18:21
YuliyaKar YuliyaKar вне форума
Прохожий
 
Регистрация: 13.11.2013
Сообщения: 37
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Строкового!
Но еще!
Само edit8 считается так
Код:
Edit6.Text:=(floattostr(strtofloat(Character.Edit2.Text)+strtofloat(Edit5.Text))); //початкова водотоннажнысть судна
ТО есть здесь я к начальному водоизмещению прибавляю постепенно вес заргуженных контенйеров с Edit5.Text.
И когда он выбивает эту ошибку, то высвечивает это поле!
Ответить с цитированием
  #22  
Старый 20.11.2013, 18:34
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от YuliyaKar
Строкового!
Если число хранится в таблице в виде строки, то тут возникают проблемы сортировки и сравнений - числа и строки сортируются немного по-разному.
Ответить с цитированием
  #23  
Старый 27.11.2013, 13:06
YuliyaKar YuliyaKar вне форума
Прохожий
 
Регистрация: 13.11.2013
Сообщения: 37
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Смотрите, убрала "TOP 1", но теперь выбивает ошибку, что не найдено поле "query3KodD", этоу меня поле счетчик. Посмотрела, запрос авктивный, поле на месте. А что такое непонятно
НАписала вот так
Код:
Query3.Close;
Query3.SQL.Text:='SELECT Dispt FROM Stab.DB WHERE Dispt  < ''' + Edit6.Text + ''' ORDER BY Dispt DESC';
Query3.Open;
if Query3.IsEmpty then
  raise Exception.Create('Ничего не найдено')
else   
  Edit8.Text := Query3.FieldByName('Dispt').AsString;
Ответить с цитированием
  #24  
Старый 27.11.2013, 13:26
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от YuliyaKar
Смотрите, убрала "TOP 1", но теперь выбивает ошибку, что не найдено поле "query3KodD", этоу меня поле счетчик. Посмотрела, запрос авктивный, поле на месте. А что такое непонятно
НАписала вот так
Код:
Query3.Close;
Query3.SQL.Text:='SELECT Dispt FROM Stab.DB WHERE Dispt  < ''' + Edit6.Text + ''' ORDER BY Dispt DESC';
Query3.Open;
if Query3.IsEmpty then
  raise Exception.Create('Ничего не найдено')
else   
  Edit8.Text := Query3.FieldByName('Dispt').AsString;
В каком месте выбивает? Я не вижу чтобы в приведённом куске кода использовалось поле query3KodD.

В крайнем случае можно добавить в выборку и это поле:
Код:
Query3.SQL.Text:='SELECT Dispt, query3KodD FROM Stab.DB WHERE Dispt  < ''' + Edit6.Text + ''' ORDER BY Dispt DESC';
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
YuliyaKar (28.11.2013)
  #25  
Старый 28.11.2013, 10:52
YuliyaKar YuliyaKar вне форума
Прохожий
 
Регистрация: 13.11.2013
Сообщения: 37
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Так и я о том же. Поле это нигде не фигурирует, но проект сразу выбивает.
Попробовла так! И все заработало!!!!!!!!!!
Просто все поля выбрала, потому что , когда я добавила "KodD", он тогла начал показывать, что другие не может найти
Код:
Query3.Close;
Query3.SQL.Text:='SELECT * FROM Stab.DB WHERE Dispt  <= ''' + Edit6.Text + ''' ORDER BY Dispt DESC';
Query3.Open;
if Query3.IsEmpty then
  raise Exception.Create('Ничего не найдено')
else
  Edit8.Text := Query3.FieldByName('DRAFT').AsString;
Это просто счастье!!! Спасибо вам, Проверила, выбирает наиболее близкое или равное!!!
Ответить с цитированием
  #26  
Старый 28.11.2013, 11:05
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от YuliyaKar
Так и я о том же. Поле это нигде не фигурирует, но проект сразу выбивает.
Попробовла так! И все заработало!!!!!!!!!!
Просто все поля выбрала, потому что , когда я добавила "KodD", он тогла начал показывать, что другие не может найти
Скорее всего у Query3 созданы поля в режиме редактирования. Т.е. если кликнуть двойным щелчком по Query3 - откроется окошко и оно будет не пустое - в нём будут автосоздаваемые поля - если их удалить из этого списка, то они больше не будут требоваться для запроса.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
YuliyaKar (28.11.2013)
  #27  
Старый 28.11.2013, 11:32
YuliyaKar YuliyaKar вне форума
Прохожий
 
Регистрация: 13.11.2013
Сообщения: 37
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Ааа, теперь ясно!!! Я же их в самом начале добавила. Ну та ладно, все равно работает ))) спасибо!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:34.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter