Въпрос свързан с Delphi
3 отговора
4 прегледа
Въпрос свързан с Delphi
Здравейте!
Опитвам се да направя едно приложение за база от данни с Dephi 4.
Използвал компонентите DataSorse и Table от палитрата Data Acsses, както и компонента DBGrid от Data Controls. Получава се таблица със съответните числа и текст свързани с дадената база от данни.
Това което ме интересува е дали може (и ако може как?) всички числа от дадена колоно в получената таблица да бъдат сумирани и получения резолтат да бъде представен в отделен компонент - например DBEdit от палитрата Data Controls или Label от палитрата Standard?
Имам и още един въпрос:
Имали някаква възможност цял ред от горепосочената таблица да бъде автоматично копиран във втора таблица когато в даден ред от втората таблица се въведе някаква част от редък който трябва да се копира?
Ако случайно решите да отговорите на въпросите ми, моля използвайте по разбираем език т.к. съм начинаещ!
Благодаря Ви предварително!
Въпрос свързан с Delphi
Опитай да преминеш към използване на SQL компоненти.
Може да се правят повече неща (по-голяма гъвкавост).
Ако загубиш малко време със SQL синтаксис, ще получиш възможност да си сумираш и редове и каквото поискаш.
Сигурен ли си че е необходимо да си дублираш информация?
Ако да, май най-лесния път е да си вържеш на съответното събитие една функция, с която да прехвърлиш информацията от един ред в една таблица в друг ред в друга или същата.
Въпрос свързан с Delphi
Za sumiraneto:
Procedure TForm1.CalcSum;
Var
Suma : Double;
Begin
Suma := 0;
Try
Table1.Active=True;
While NOT Table1.EOF Do Begin
Suma := Suma + Table1.FieldByName('TargetField').AsFloat;
Table1.Next;
End; {While}
Finally
Table1.Active := False;
End;{Try}
Label1.Caption := Format('%f',[Suma]);
End;{Procedure}
Towa otwaria Table1 (TTable componenta) i obhojda 1 po 1 ws. zapisi, kato dobavia v Suma stoinosta na pole koeto se kazva TargetField. V tozi primer poleto e ot niakoi Real type, ako poleto e ot Integer togava gmeni AsFloat s AsInteger.
Poprincip tova e dosta tup (i nai-veche baven) nachin. Po-dobre e da nauchish malko SQL - obadi se (po e-mail) za SQL statement koito da slojish v TQuery componenta.
Въпрос свързан с Delphi
Za prehwarliane na edin red ot edna tablica v druga:
Sloji dve TTable na formata,
Warji gi s DB koiato ti triabva
Otwori gi
(Table1 = Source, Table2 = Destination)
Table2.Append
Table2.FieldByName('ime_na_pole_1b').Value := Table1.FieldByName('ime_na_pole_1a').Value;
.
.
.
Table2.FieldByName('ime_na_pole_Nb').Value := Table1.FieldByName('ime_na_pole_Na').Value;
Table2.Poust;
Zatwoti tablicite - mai towa shte ti svarshi raboda ako iskash da dobaviash novi zapisi v Table2.
Eventualno, ako znaesh predvaritelno tipovete na poletata - use AsString, AsIntegr... vmesto .Value.
Ako obache iskash da promeniash stoinosti vav veche sashtestvuvashti zapisi - togava e po-slojno, use Table.Locate za da si namerish recorda, posle Table2.EDIT ( a ne Append) i nakraia pak Post.