Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1139048231
Officeman
2006-02-04 13:17
2006.02.19
Как програмно узнать есть ли коннект с интернетом.?


2-1138937257
Приятель
2006-02-03 06:27
2006.02.19
Как выровнять record на 149


15-1138350445
syte_ser78
2006-01-27 11:27
2006.02.19
проблемы с украинской буквой І


4-1133690898
Surik
2005-12-04 13:08
2006.02.19
EnumResourceTypes постоянно возвращает ошибку


3-1135003875
k-75
2005-12-19 17:51
2006.02.19
ADOQuery возвращает не более 1000 записей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский