![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с Locate с поиском поля типа date [D7, Paradox]
Юлия © (2003-10-04 20:22:00)
var
Arr : Variant;
Arr := VarArrayCreate([0,k-1], varVariant);
arr[0]:=DateTimePicker1.Date;
table1.Locate("data_ot",arr,[]);
Появляется ошибка: could not convert variant of type (array variant) into type (date)
Что делать? Он не может перевести неопределенный тип данных в дату. Как это обойти?
Term (2003-10-06 09:49:00) [1]
Ну я же говорил что всё работает
If Form1.Table1.Locate("Name;Data",VarArrayOf([Form1.Edit1.Text,StrToDate(Form1.MaskEdit1.Text)]),[])
then ShowMessage("Нашёл !!!");
вот попробуй так это работает 100% сам попробывал(да что это я всю жизнь так делал, а тут вдруг сомневаться начал, эх женщины женщины, чтоб бес вас делали бы то аааа....)
Юлия (2003-10-05 15:42:00) [2]
Я лазила в хелп. Проверяла. Пробовала. Не получается. Когда у вас будет возможность, попробуйте подставить значение типа дата. У меня не получается. Появляется ошибка. С другими типами данных все в порядке.
Term (2003-10-05 15:04:00) [3]
Table1.Locate("field1;field2", VarArrayOf[name,Data_Roj],[]);
т.е. вот так
Term (2003-10-05 15:03:00) [4]
> VarArrayOff[name,Data_Roj],[]);
я щас не за своим рабочим компом поэтому выдержку из дельфового хелпа привести не могу, выдели в программе Locate и нажми F1, там есть пример. У меня это работало причом условия поиска могло формироваться динамически, и условия было намного более сложные, это всё работает,
Table1.Locate("field1;field2", VarArrayOff[name,Data_Roj],[]);
попробуй так я мог по запарке ошибиться, но еще раз говорю хелп там всё есть
Юлия (2003-10-05 14:58:00) [5]
Нет, та же ошибка.
Term (2003-10-05 14:53:00) [6]
примерно так:
var name:string;
Data_Roj:TDateTime;
begin
Table1.Locate("field1;field2", VarArrayOff[name,Data_Roj],[]);
end;
вот примерно так должно быть, я же говорю посмотри в хелпе, я мог допустить неточность, но думаю понятно
Юлия (2003-10-05 14:33:00) [7]
2Term: Как делать не надо? Вы имеете в виду, что можно без массива?
Поиск осуществляется по несколькимполям.
В таком варианте:
Arr := VarArrayCreate([0,1], varVariant);
arr[0]:=DateTimePicker1.Date;
arr[1]:="Иванов";
table1.Locate("data_ot;fam",arr,[]);
Без массива не обойтись.
Term (2003-10-05 14:20:00) [8]
table1.Locate + F1
и все проблемы решаться, там не надо так делать
> var
> Arr : Variant;
>
> Arr := VarArrayCreate([0,k-1], varVariant);
> arr[0]:=DateTimePicker1.Date;
> table1.Locate("data_ot",arr,[]);
Юлия (2003-10-05 14:00:00) [9]
а если надо сделать поиск по нескольким полям? Приходится использовать массив.
MsGuns (2003-10-05 13:47:00) [10]
table1.Locate("data_ot",DateTimePicker1.Date,[]);
Юлия (2003-10-05 10:43:00) [11]
Пробовала. не получается. Он определяет, что ему нужно значение типа дата, а получить этот тип данных из неопределенного не может.
me (2003-10-04 21:50:00) [12]
Лучше подставить дату в текстовом виде, предварительно сформатировав в понятное для Paradox представление