Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизКак прервать цикл 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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.037 c