Имам програма Delphi 2010 ADO, която има DBGrid. Неговият набор от данни избира от заявка на Access. Заявката има колона, дефинирана като CStr(Amount*UnitCount)+" "+Unit. Заявката работи добре в Access. Но DBgrid отказва да покаже стойностите за тази колона
Delphi 2010 Изчислена колона в DBGrid
Отговори (1)
Ще искате да дефинирате изчислено поле в наследника на TDataset, който е свързан с вашата мрежа, и след това да приложите изчислението за това поле в събитието OnCalcFields.
person
Brave Cobra
schedule
09.05.2010
Това работи, разбира се. Но няма смисъл, че ако db машината прави превода в заявката, защо контролата просто не вижда заявката, както е представена, и не показва стойностите.
- person Ken Lange; 09.05.2010
Това зависи от това дали искате Delphi да направи изчислението или DB Engine. Ако искате DB машината да го направи, тогава пренапишете вашата заявка като изберете a, b, (a+b) като сума от mytable. По този начин резултатът, включително изчислението, се извършва от DB машината и няма нужда от изчисленото поле в delphi, но може да е по-трудно да вмъкнете/актуализирате нови данни в таблицата. В зависимост от внедряването на наследника на TDataset, той може да не разпознае изчисленото поле и по този начин да остави вашия набор от данни без възможност за актуализиране, но ще трябва да тества този. Изборът е твой.
- person Brave Cobra; 10.05.2010