Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Locate в ADO... [D5, ADO]


grusty ©   (2003-08-31 15:20:00) 

Уважаемые, почему в данной процедуре Locate не находит запись и есть ли выход из положения?

procedure Forma.ButtonClick(Sender: TObject);
var
v: Currency;
begin
v:=10.10;
if ADODataSet.Locate("Val",v,[]) then ShowMessage("Запись найдена!");
end;

В базе ADODataSet поле Val – денежное.


grusty   (2003-08-31 19:06:00) [1]

-->sniknik

Где Вы были раньше... Я 2-й день мучаюсь... Спасибо!


sniknik   (2003-08-31 19:05:00) [2]

grusty © (31.08.03 19:02) [5]
в 10.00 на самом деле точки нет = 10


grusty   (2003-08-31 19:02:00) [3]

Так не работает.
Вот если
v:=10.00; (в таблице есть записи с 10.10 и 10.00)
то все нормально и первый вариант работает.


sniknik   (2003-08-31 18:55:00) [4]

решение 1
пуск->настройка->панель управления->язык и стандарты|->числа->разделитель целой и дробной части числа - поставь точку - "."
наслаждайся поиском (правильным).
решение 2
передавай в locate строкой (только с разделителем - точка)


777   (2003-08-31 18:05:00) [5]

Не вижу проблемы :)

procedure Forma.ButtonClick(Sender: TObject);
var
v: Currency;
begin
v:=10.10;
if ADODataSet.Locate("Val",Format("%m",[v]),[]) then ShowMessage("Запись найдена!");
end;


grusty   (2003-08-31 17:56:00) [6]

Так будет работать, но мне нужно, чтобы переменная v была не символьная, а числовая. Если сделать FloatToStr(v) или CurrToStr(v), то тоже не работает.


777   (2003-08-31 17:27:00) [7]

Может так?
var
v: string;
begin
v:="10,10р.";
if ADODataSet1.Locate("VAL",v,[]) then ShowMessage("Запись найдена!");
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо