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

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

Проблема с 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 представление


Наверх

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