Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: CL | DM;

Вниз

Как прервать цикл While?   Найти похожие ветки 

 
Asail   (2006-02-01 17:07) [40]

В таблице, я так понимаю, должен быть PrimaryKey.
1. Так-что можно реализовать поиск через SQL с возвратом списка значений ключей записей, соответствующих запросу. А потом, с помощью GotoKey прыгать по таблице только на соответствуюшие записи.
2. По причине того, что названия полей каждый раз разные, в SQL-запросе можно использовать параметры.


 
msguns ©   (2006-02-01 17:10) [41]

>dera   (01.02.06 16:58) [38]
>В таблице 1.27 млн. строк. Поиск выполняется оч-ч-чень долго!

С тебя причитается на ремонт стула. Сломался ибо. Когда я упал, прочитав это.

>>Единственное, можно поставить сразу AsString, вместо AsVariant.
>а если поле не стринг попадется для поиска.

 Давай все ж-таки сделаем так: ты нормально исследуешь хотя бы один, но базовый класс TDataSet вместе с TFields/TField, а только потом придешь сюда с вопросами. Ибо читать тебе тут целый курс лекций никто не будет.
А без этого (а ведь это только основы !) нечего и думать о "программе просмотра/редактирования записей"
Либо у тебя получится уродище еще то. Самому же и стыдно будет.


 
msguns ©   (2006-02-01 17:13) [42]

Кстати, а чем не нравится для этих целей стандартные борландовсие "шаровары" типа десктопа. Там все делается, только, думаю, бОльше, быстрее и лучше, чем в твоей программе.
Зачем изобретать велосипед ?


 
dera   (2006-02-01 17:18) [43]

>>Либо у тебя получится уродище еще то. Самому же и стыдно будет.
  согласен... маловато знаю по сравнению с вами. Но пытаюсь...

  Спасибо. Вы и так много помогли.


 
Asail   (2006-02-01 17:19) [44]


> а чем не нравится для этих целей стандартные борландовсие
> "шаровары" типа десктопа

А борланд десктоп может работать с таблицами Btrieve? Сомневаюсь...
Хотя, конечно, если пошарить по сети хорошенько, можно найти неплохой viewer.


 
evvcom ©   (2006-02-01 17:21) [45]

сгенерить sql запрос и выполнить. Имхо, лучшей производительности (скорости) не добьешься.


 
Asail   (2006-02-01 17:25) [46]


> сгенерить sql запрос и выполнить

А я про что?!! см. 40


 
dera   (2006-02-01 17:27) [47]

>А борланд десктоп может работать с таблицами Btrieve? Сомневаюсь...
правильно сомневаетесь. Не работает.
А вот SQL Explorer отлично видит и выполняет sql запросы для таблиц Btrieve. Но! Есть одно но. Если человек (обычный пользователь) не знает sql, он не сможет ничего найти. Вот я и хочу упростить ему работу - выбрал имя поля, ввел искомое значение, нажал батон - и есть результат.


 
dera   (2006-02-01 17:30) [48]

>1. Так-что можно реализовать поиск через SQL с возвратом списка значений ключей записей, соответствующих запросу.

Это я знаю ка сделать.А вот это...

>А потом, с помощью GotoKey прыгать по таблице только на соответствуюшие записи.

...нет. Подскажите.


 
Ega23 ©   (2006-02-01 17:36) [49]


> ...нет. Подскажите.


Попробуй покопай в сторону TBookmark


 
Asail   (2006-02-01 18:00) [50]

Примерно так:
Положим, что поле с ключом называется PK_Field. Query должен вернуть таблицу из записей ,соответствующих условию. Каждая запись состоит из одного поля PK_Field.
Теперь, проходим циклом по Query:
...
Query.Open;
while not Query.Eof
do begin
 Table.SetKey;
 Table.FieldByName("PK_Field").AsVariant:=
             Query.FieldByName("PK_Field").AsVariant;
 Table.GotoKey;
 //здесь мы оказались на следующей искомой записи в основной таблице

  if MessageDLG("Запись найдена! Продолжить поиск?",
                      mtConfirmation,[mbYes,mbNo],0)=mrNo then break;

 Query.Next;
end;

понятно, что Table.IndexFieldNames:="PK_Field"
иначе SetKey, GotoKey работать не будут.


 
dera   (2006-02-01 18:23) [51]

>Asail   (01.02.06 18:00) [50]
спасибо!



Страницы: 1 2 вся ветка

Текущий архив: 2006.02.19;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.063 c
3-1135510557
Varlock
2005-12-25 14:35
2006.02.19
Widestring и Table


2-1138823176
Flint-1983
2006-02-01 22:46
2006.02.19
QReport


4-1133760007
Andron.Ru
2005-12-05 08:20
2006.02.19
Горячая клавиша на создание папки в активном окне


2-1138306299
Kostafey
2006-01-26 23:11
2006.02.19
Несколько вопросов о работе с БД Access


15-1138798786
Piter
2006-02-01 15:59
2006.02.19
Длительность MP3