Sortirane, MySQL sys Zeos

6 отговора 156 прегледа
#1

Sortirane, MySQL sys Zeos

Nachinaesht sym v MySQL i rabotia sys Zeos components
Imam rezultat ot izpylnenieto na Query (v DBGrid), no iskam da davam vyzmojnost na potrebitelia da go vijda sortiran po razlichen nachin. Moga da napravia nov SQL sys systia Select i razlichen Order By, no po tozi nachin sortiraneto ste se pravi ot MySQL server i rezultata ste se prehvyrlia na client. Vyprosyt mi e:

Ima li nachin veche polucheno mnojestvo records da si go sortiram na clienta, bez da pravia novi zaiavki kym server?


Отговор
в отговор на XM #2

Re: Sortirane, MySQL sys Zeos

Със стандартния TDBGrid - компоент - не, ако не го извеждаш в грид - пак не - защото source-a не ти е сортиран.
Как се правят подобни неща :
1. Намираш си компонент който ти сортира данните - грид - има един недостатък - в момента в който решиш да не ползваш грид(ами друг тип компоненти - като Edit) - идеята ти се разваля - защото записите ти се теглят един по един. Друг недостатък на ползването на подобни сортировки с грид е че грида ще ти дръпне вси4ки записи за да ги сортира - което при бавна връзка си е много досадно.

2. Вкарваш данните в memory table- за последното потърси kbmemtable -или нещо подобно се казваше. Тука вече можеш да си правиш каквото си поискаш. Е недостатъка си личи от пръв поглед - ако обновяваш данните - ще трябва да го правиш на 2 паса - първо в memtable-a и след това в истинската таблица.

3. Измисляш начин да ползваш и сменяш индекси(по различните полета) - или преправяш заявките си така, че да могат да се ползват със сортиране - аз лично бих избрал - този по тежкия начин, но зависи за какво точно става дума.

---
Е т'ва е живот!
Отговор
в отговор на PhantomAS #3

Blagodaria!

Благодаря за изчерпателния отговор!
Ще разгледам kbmemtable, а и маи имам стари версии на някаква друга MemTable.

Отговор
в отговор на XM #4

Re: Blagodaria!

Ако наистина ти трябва само за грид - бих ти препоръчал да се спреш на някакъв компонент който позволява сортиране- аз не мога да ти препоръчам, защото тези които съм виждал, че работят добре са платени.

---
Е т'ва е живот!
Отговор
в отговор на PhantomAS #5

Още

На времето ползвах Rx библиотеката, но имаше проблеми.
А сега да сменя малко темата - искам да си филтрирам Queri-то:
with ZQuery1 do begin
if ... then begin
Filter := 'Tip = "2"';
end else begin
Filter := 'Tip = "1"';
end;
Filtered := true;
но не се получава. Може би бъркам синтаксиса?
Впрочем и този, и предния проблем са, защото нямам никаква документация за Zeos (е - само сорсове ).

Отговор
в отговор на XM #6

Re: Още

Пробвай първо с филтър по integer поле - за да си сигурен, че въобще работи.
Другото което ми идва наум е - пробвай следното :
Filter := 'Tip =' + QuotedStr('2');

---
Е т'ва е живот!
Отговор
в отговор на PhantomAS #7

Taka i taka si liubezen - da pitam oste

Blagodaria ti za otgovora!

Taka i taka si liubezen i mi obrystash vnimanie - da pitam oste.
Dnes rabotih sys Zeosdbo-6.0.12-stable i MySQL (protokol 3.23) i mi napravi vpechetlenie, che kogato MySQL server ne e startiran mi harchi pamet (malko).
Ustanovih, che TZMySQLConnection.Open kogato pravi neuspeshen opit za inicializacia na FPlainDriver.Init ne osvobojdava pametta.
Slojih mu az edno Despose (taka sa go krystili - s "e") i se opravi, no sym smuten, shtoto si misleh, che moiata versia na Zeos e "Stable".
Za syjalenie ne sym tolkova dobre s english, za da im drasna edin uvedomitelen mail.

Ti polzvash li Zeos i kakva versia?

Отговор