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ů