progs:fblutil
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verze | |||
| progs:fblutil [2020/01/17 09:00] – Karel Petrů | progs:fblutil [2020/01/31 14:23] (aktuální) – Karel Petrů | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| ====== FBLUtil ====== | ====== FBLUtil ====== | ||
| + | |||
| + | ===== Import ceniku z CSV ===== | ||
| + | |||
| + | <code LUA> | ||
| + | --../ | ||
| + | |||
| + | local DBName = " | ||
| + | local CenikName=arg[1] | ||
| + | local ImportFN = "/ | ||
| + | local IDDruh=" | ||
| + | local Prefix=string.upper(string.sub(CenikName, | ||
| + | local PrefixNumChars=4 | ||
| + | local ISC_PASSWORD=os.getenv(" | ||
| + | |||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | local db = FBLUtil.ConnectDB(DBName, | ||
| + | |||
| + | function CloneTable(db1, | ||
| + | local r=db1: | ||
| + | if #r>0 then --tabulka existuje | ||
| + | print(" | ||
| + | db1: | ||
| + | db1: | ||
| + | end | ||
| + | local t = db1: | ||
| + | local flds = "" | ||
| + | for i, v in ipairs(t) do | ||
| + | local s = string.format(" | ||
| + | if flds ~= "" | ||
| + | flds = flds .. ", " | ||
| + | end | ||
| + | flds = flds .. s | ||
| + | end | ||
| + | print(" | ||
| + | db1: | ||
| + | db1: | ||
| + | local t = db1: | ||
| + | for i, v in ipairs(t) do | ||
| + | db1: | ||
| + | if v.Inactive then | ||
| + | db1: | ||
| + | end | ||
| + | end | ||
| + | db1: | ||
| + | end | ||
| + | |||
| + | function CloneCenik() | ||
| + | CloneTable(db, | ||
| + | end | ||
| + | |||
| + | function GetNextPrefixNum(NumChars) | ||
| + | local r=db: | ||
| + | --print(r) | ||
| + | local p=string.format(" | ||
| + | local n=0 | ||
| + | if # | ||
| + | local f=string.len(Prefix)+1 | ||
| + | local t=string.len(Prefix)+NumChars | ||
| + | n=string.sub(r.Rows[1][1], | ||
| + | --print(p, | ||
| + | end | ||
| + | return string.format(p, | ||
| + | end | ||
| + | |||
| + | local PrefixNum=GetNextPrefixNum(PrefixNumChars) | ||
| + | |||
| + | function Import_testcen() | ||
| + | print(" | ||
| + | local t = os.time() | ||
| + | print(string.format(" | ||
| + | local n = db: | ||
| + | | ||
| + | values (' | ||
| + | db:Commit() | ||
| + | print(string.format(" | ||
| + | end | ||
| + | |||
| + | function UpdateCenik() | ||
| + | print(" | ||
| + | local t = os.time() | ||
| + | local n=db: | ||
| + | naklady=(select naklady from v_rozpocty_cenik v where v.v_iddod=c.v_iddod and c.iddruh=v.iddruh), | ||
| + | DatumZmeny=CURRENT_TIMESTAMP | ||
| + | where | ||
| + | exists (select * from v_rozpocty_cenik v where v.v_iddod=c.v_iddod)]], | ||
| + | db:Commit() | ||
| + | print(string.format(" | ||
| + | t = os.time() | ||
| + | local n=db: | ||
| + | where not exists (select * from rozpocty_cenik c where c.v_iddod=v.v_iddod and c.iddruh=v.iddruh) | ||
| + | ]],{}) | ||
| + | db:Commit() | ||
| + | print(string.format(" | ||
| + | end | ||
| + | |||
| + | function CreateCenik() | ||
| + | print(" | ||
| + | local t = os.time() | ||
| + | db: | ||
| + | local n=db: | ||
| + | db:Commit() | ||
| + | print(string.format(" | ||
| + | end | ||
| + | |||
| + | |||
| + | CloneCenik() | ||
| + | |||
| + | assert(load(" | ||
| + | |||
| + | if tonumber(PrefixNum) == 0 then | ||
| + | CreateCenik() | ||
| + | else | ||
| + | UpdateCenik() | ||
| + | end | ||
| + | |||
| + | db: | ||
| + | |||
| + | </ | ||
| ===== Prenos dat mezi DB, Import, Export ===== | ===== Prenos dat mezi DB, Import, Export ===== | ||
progs/fblutil.1579251649.txt.gz · Poslední úprava: 2020/01/17 09:00 autor: Karel Petrů