Avatar billede Hartvig01 Nybegynder
17. februar 2011 - 15:02 Der er 3 kommentarer og
2 løsninger

Opdatere beregnet felt til databasen

Hejsa,

Jeg har følgende stående i Post-Load triggeren til CustTable.
Koden virker fint men sætter kun felterne "synligt" dvs. når vi går ind og kigger i kartoteket, er de beregnet korrekt, men når vi går ned i SQL-tabellen, står der stadig 0 i alle felterne.
Det er som om at dataene kun eksisterer i en tmp-tabel. Hvordan får jeg den til at opdaterer til SQL-tabellen ?
(C5 2008)

På forhånd tak for enhver hjælp.

/Hartvig



IF CustTable.Account THEN
    SET CustTable.SalesLastYear = 0
    SET CustTable.SalesThisYear = 0
    SEARCH CustStatistics RENAME Salg USING AcPeriodIdx
    WHERE Salg.PeriodStart >= MkDate(1,1,Year(PrevYr(&SystemDate))) AND
          Salg.PeriodStart <= MkDate(31,12,Year(&SystemDate)) AND
          Salg.Account == CustTable.Account
IF Salg.PeriodStart <= MkDate(31,12,Year(PrevYr(&SystemDate))) THEN
    #Add(CustTable.SalesLastYear, Salg.OrderBalance)
    ELSEIF Salg.PEriodStart >= MkDate(1,1,Year(&SystemDate)) THEN
    #Add(CustTable.SalesThisYear, Salg.OrderBalance)
ENDIF
END
ENDIF
Avatar billede ADDCON-C5 Forsker
17. februar 2011 - 16:02 #1
Hejsa Hartvig,

For mig og se mangler du en 'UPDATE Salg' kommando efter
at du har bereget værdierne.

Kommandoen kan du placere mellem ENDIF og END.

MVH
P. Agger
Avatar billede Hartvig01 Nybegynder
17. februar 2011 - 16:26 #2
Hej P. Agger,

Det er ikke statistics jeg ønsker at opdatere, men felterne i CustTable, og jeg har forsøgt med Update CustTable, dog uden virkning.
Avatar billede ADDCON-C5 Forsker
17. februar 2011 - 16:29 #3
HEj igen,

Hvor har du prøvet med UPDATE CustTable ?

PA
Avatar billede Hartvig01 Nybegynder
17. februar 2011 - 21:30 #4
Hej PA,

Mellem ENDIF og END, kan det være fordi at koden ligger hvor den gør, altså at den skal flyttes et andet sted hen ?

Faktisk skal den i sidste ende slet ikke være i triggeren, men jeg skal finde en måde at køre den på 1 gang i døgnet eller lignende.
Avatar billede Slettet bruger
19. februar 2011 - 11:01 #5
Det er blokken på formen der skal opdateres. Det gøres ved først at skrive #Frm_Change(Custtable,'ON') og der efter #Frm_Commit(Custtable). #Frm_Commit kan undlades, så opdateres Custtable når man forlader formen.

Men der bør ikke ligge kode på POST_LOAD der opdaterer databasen.
Koden skal liggen på en database trigger eller en kørsel (som du selv skriver).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester