Na koji nacin neki podatak u tabeli(paradox7) zamjenim sa drugim koji sam dobio kao proizvod nekog racuna?
Rucno to nije problem kliknem dva puta na podatak u DBGrid-u on poplavi unesem novu vrijednost pritisnem enter i to je to.
Medjutim meni treba da to odradim kroz source tj. da se podatak automatski upise novu vrijednost u bazu npr. kada pritisnem dugme .
Potpis
Ta kolona u koju unosis nosi sa sobom master key koji si podesio u toku dizajniranja baze, odnosno tabele, i u toj koloni ne smeju da se pojave dva ista zapisa... to je sve, skini master key i sve ce biti u redu
pozdrav
Potpis
MacBook Pro or iMac (intel Core Duo edition) user wannabe!!!
Uz malo srece i malo vise para... heh...
Pre nego sto ces dodeliti vrednost polju u tabeli, trebas da tabelu prebacis u edit mod rada.
MojaTabela.Edit; {postavljanje tabele u edit mod i sada mozes da menjas vrednosti polja u tabeli}
MojaTabejaMojePolje.Value:=x+y; {ovde polju u tabeli dodeljujes vrednost}
Moja Tabela.Post; {ovde se podaci zapisuju u tabelu}
CalcFields na nivou dataset-a (TTable, Tquery) su interno izracunati na nivou forme. Znaci, kada dodajes polja u dataset, i postavis tip na Calculate, to izaziva da se prilikom skrolovanja kroz slogove ili izmenom podataka u bilo!! kom polju u slogu aktivira OnCalc.. event u kome se izracunava vrednost.
Ako je potreba da neko polje bude izracunato npr. "cena" * "kolicina" = "iznos", onda
je postupak da u kreiranju paradox tabele napravis sva tri polja, uvuces ih u spisak polja u TTable komponentu. Ako zelis automatski obracun "iznosa", postoji vise varijanti :
- OnChange event na poljima "cena" i "kolicina" ( ponovis dva puta formulu )
- BeforePost event na TTable komponenti sa formulom da pre nego sto delphi posalje vrednosti u paradox izracunas vrednost polja koje zelis da postavis u izracunato polje
Indicates whether a field represents a column in a dataset, a calculated field,
or a lookup field.
property FieldKind: TFieldKind;
Description
Use FieldKind to determine if a field is a data field, a calculated field, a
lookup field, or an aggregate field. The value of FieldKind can be changed
programmatically, but in practice FieldKind is set at design time when creating
Field components with the Fields editor.
The FieldKind property can take one of the following values:
Value Description
fkData Field represents a physical field in a database table
fkCalculated Field is calculated in an OnCalcFields event handler
fkLookup Field is a lookup field. (Not implemented for fields on unidirectional
datasets)
fkInternalCalc Field is calculated but values are stored in the dataset.
fkAggregate Field represents a maintained aggregate in a client dataset.
Note: Fields calculated by SQL servers have a FieldKind of fkInternalCalc, not
fkCalculated. This is because the field values are stored in the dataset.
Calculated fields in a client dataset that are calculated in an OnCalcFields
event handler but stored in the dataset also have a FieldKind of fkInternalCalc
instead of fkCalculated. Unlike regular calculated fields, internally calculated
fields can be used in filter expressions. They can be edited, but the changes
are discarded. To prevent editing, set the ReadOnly property to True.
Note: The FieldKind property of a field is only stored with the field object if
the value is fkInternalCalc.
_________________________________
Znaci mogao bi na pomocu OnCalcFields dogadjaja promeni vrednosti polja u datasetu, ali ako je dataset produkt SQL-a.
Treba da dobijes celu tabelu kao rezultat query-a a onda da je celu sacuvas na mesto tabele iz koje si napravio query.
Nisam bas razumeo to snimis query u tabelu?
Jos uvek mi nije jasno sta je momku koji je zapoceo diskusiju problem ? Ako zeli da programski menja vrednost polja onda su svi oni primeri sa .value ili table['field'] := .. Ispravni. A izracunatu vrednost moze da formira na hiljadu nacina.
Cini mi se da ga je povuklo a stavi calculated field u properti od polja pa mu ne dozvoljava snimanje. Ako stavi fkData, i programski izracuna novu vrednost sve ce se korektno izvrsiti.
Key violation problem moze da nastane iz puno razloga
posalji deo source u kojem si probao da snimis nesto u tabelu.
mislio sam da pomocu SQL-a dobije dabelu (dataset) u kome moze da izracuna vrednosti koje nu trebaju koristeci CalcFields ili da sam upit napise tako da mu izracuna sve sto mu treba, a da zatim eksportuje rezultatupita u tabelu iz koje je izvukao podatke.