2019-10-28 12:19
Computantis
Sveiki, reikia pagalbos. Susikūriau "serverinę" Apskaita5, tačiau prisijungus (jungiuosi kaip administratorius "root") neleidžia sukurti naujos duomenų bazės (naujos įmonės), meta pranešimą:
KRITINĖ KLAIDA - NEBAIGTA KURTI DUOMENŲ BAZĖ. Klaida kilo bandant sukurti procedūrą 'CROUND'. Iki klaidos atsiradimo buvo sukurtos šios duomenų bazės lentelės: advancereports, apyskaitos, asmenys, bankoperations, bz, bzdata, cashaccounts, companyaccounts, companyforms, companyrates, companyregionaldata, d_avansai, d_avansai_d, d_kitos, darbuotojai_d, du_ziniarastis, du_ziniarastis_d, financialstatementsstructure, imone, invoicesmade, invoicesreceived, kalkuliac, kalkuliac_d, kio, kpo, longtermassetcustomgroups, offsetitems, paslaugos, persons_group, persons_group_assignments, prekes_gr, regionalcontents, regionalprices, saskaitupl, serijos, sfd, sfg, tipines_data, tipines_op, turtas, turtas_op, worktimeclasss, specialworktimeitems, worktimesheets, dayworktimes, worktimeitems, warehouses, goods, goodsaccounts, goodscomplexoperations, goodsoperations, goodsvaluationmethods, consignmentdiscards, consignments, accumulativecosts, accumulativecostsitems, holidaypayreserves, holidaypayreserveitems, vatdeclarationentrys, vatdeclarationschemas, payoutnaturalpersonwithouttaxes, proformainvoicemadeitems, proformainvoicesmade, customvatoperations, sharesoperations, sharesclasses, sharesoperationdetails.Iki klaidos atsiradimo nebuvo sukurta nė viena procedūra šioje duomenų bazėje.
SQL serverio klaidos pranešimas yra:
Klaida vykdant SQL komandą: [CREATE FUNCTION apskaita01.CROUND(d DOUBLE, r INT) RETURNS double
BEGIN DECLARE s BIGINT; SET s=FLOOR(d*POW(10,r)); IF (s+0.5>d*POW(10,r)) THEN RETURN s/POW(10,r); END IF; RETURN (s+1)/POW(10,r); END=FLOOR(d*POW(10,r)); IF (s+0.5>d*POW(10,r)) THEN RETURN s/POW(10,r); END IF; RETURN (s+1)/POW(10,r); END], Params:
Klaidos turinys: 'This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)'.
Klaidą sukėlė ši SQL komanda:
CREATE FUNCTION apskaita01.CROUND(d DOUBLE, r INT) RETURNS double
BEGIN DECLARE s BIGINT; SET s=FLOOR(d*POW(10,r)); IF (s+0.5>d*POW(10,r)) THEN RETURN s/POW(10,r); END IF; RETURN (s+1)/POW(10,r); END
SIŪLYTINA ŠIO PRANEŠIMO TEKSTĄ PATEIKTI SISTEMOS ADMINISTRATORIUI.