Привет, программисты!
Помогите решить одну проблемку. Из-за этого у меня приложение к базе данных медленно работает. База данных у меня на SQL Server (е), приложение на Делфи.
У меня на главной форме есть вкладка с четырьмя страницами. На каждой странице имеется DBGrid, соединенный со своим Query. В самом Query имеется обычный запрос к базе.
Так вот, если в этом запросе написать "SELECT TOP 10 и т.д." (и так в каждом Query), то приложение работает быстро, но у меня не получается сделать поиск. А если в запросе написать "SELECT ... и т.д." (без TOP 10), то приложение работает медленно, потому что в запросе выходят все записи, а их очень много. Зато тогда у меня поиск работает, но тоже медленно.
Я делала поиск по инвентарному номеру (поле InventoryID), вот так:
procedure TForm1.Button4Click(Sender: TObject);
begin
dm.Query1.Filtered:=True;
dm.Query1.Filter:='InventoryID= '''+inv_poisk.Text+'''';
dm.Query1.Close;
dm.Query1.Open;
//Label80.Caption:=cou(dm.Query1);
end;
Вот этот поиск работает, когда в Query "SELECT ... и т.д." (без TOP 10).
А когда "SELECT TOP 10 и т.д.", то поиск работает только в пределах тех десяти записей, которые показываются в DBGrid (е), остальные записи, имеющиеся в запросе, он просто не видит.
А мне нужно, чтоб в DBGrid (е) показывалось только 10 первых записей (так приложение быстрей работает), но чтоб поиск осуществлялся среди всех имеющихся в запросе записей, даже которые не показаны в DBGrid.Вот. Помогите мне, пожалуйста.