![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;