Sortirane, MySQL sys Zeos
6 отговора
156 прегледа
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?
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?
Re: Sortirane, MySQL sys Zeos
Със стандартния TDBGrid - компоент - не, ако не го извеждаш в грид - пак не - защото source-a не ти е сортиран.
Как се правят подобни неща :
1. Намираш си компонент който ти сортира данните - грид - има един недостатък - в момента в който решиш да не ползваш грид(ами друг тип компоненти - като Edit) - идеята ти се разваля - защото записите ти се теглят един по един. Друг недостатък на ползването на подобни сортировки с грид е че грида ще ти дръпне вси4ки записи за да ги сортира - което при бавна връзка си е много досадно.
2. Вкарваш данните в memory table- за последното потърси kbmemtable -или нещо подобно се казваше. Тука вече можеш да си правиш каквото си поискаш. Е недостатъка си личи от пръв поглед - ако обновяваш данните - ще трябва да го правиш на 2 паса - първо в memtable-a и след това в истинската таблица.
3. Измисляш начин да ползваш и сменяш индекси(по различните полета) - или преправяш заявките си така, че да могат да се ползват със сортиране - аз лично бих избрал - този по тежкия начин, но зависи за какво точно става дума.
---
Е т'ва е живот!
Как се правят подобни неща :
1. Намираш си компонент който ти сортира данните - грид - има един недостатък - в момента в който решиш да не ползваш грид(ами друг тип компоненти - като Edit) - идеята ти се разваля - защото записите ти се теглят един по един. Друг недостатък на ползването на подобни сортировки с грид е че грида ще ти дръпне вси4ки записи за да ги сортира - което при бавна връзка си е много досадно.
2. Вкарваш данните в memory table- за последното потърси kbmemtable -или нещо подобно се казваше. Тука вече можеш да си правиш каквото си поискаш. Е недостатъка си личи от пръв поглед - ако обновяваш данните - ще трябва да го правиш на 2 паса - първо в memtable-a и след това в истинската таблица.
3. Измисляш начин да ползваш и сменяш индекси(по различните полета) - или преправяш заявките си така, че да могат да се ползват със сортиране - аз лично бих избрал - този по тежкия начин, но зависи за какво точно става дума.
---
Е т'ва е живот!
Blagodaria!
Благодаря за изчерпателния отговор!
Ще разгледам kbmemtable, а и маи имам стари версии на някаква друга MemTable.
Ще разгледам kbmemtable, а и маи имам стари версии на някаква друга MemTable.
Re: Blagodaria!
Ако наистина ти трябва само за грид - бих ти препоръчал да се спреш на някакъв компонент който позволява сортиране- аз не мога да ти препоръчам, защото тези които съм виждал, че работят добре са платени.
---
Е т'ва е живот!
---
Е т'ва е живот!
Още
На времето ползвах Rx библиотеката, но имаше проблеми.
А сега да сменя малко темата - искам да си филтрирам Queri-то:
with ZQuery1 do begin
if ... then begin
Filter := 'Tip = "2"';
end else begin
Filter := 'Tip = "1"';
end;
Filtered := true;
но не се получава. Може би бъркам синтаксиса?
Впрочем и този, и предния проблем са, защото нямам никаква документация за Zeos (е - само сорсове
).
А сега да сменя малко темата - искам да си филтрирам Queri-то:
with ZQuery1 do begin
if ... then begin
Filter := 'Tip = "2"';
end else begin
Filter := 'Tip = "1"';
end;
Filtered := true;
но не се получава. Може би бъркам синтаксиса?
Впрочем и този, и предния проблем са, защото нямам никаква документация за Zeos (е - само сорсове
Re: Още
Пробвай първо с филтър по integer поле - за да си сигурен, че въобще работи.
Другото което ми идва наум е - пробвай следното :
Filter := 'Tip =' + QuotedStr('2');
---
Е т'ва е живот!
Другото което ми идва наум е - пробвай следното :
Filter := 'Tip =' + QuotedStr('2');
---
Е т'ва е живот!
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?
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?