Autor Téma: Parametrizované príkazy  (Přečteno 1736 krát)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2003
  • Karma: 103
    • Verze Delphi: D2007, XE3, DX10
Re:Parametrizované príkazy
« Odpověď #60 kdy: 22-12-2017, 21:14:50 »
Me totiz porad unika proc pro "jednoduchy editor" tabulek a reportovac psat a buildovat dokola aplikaci pro kazdou z nich :P Nebo deklarovat v Delphi kodu kazdou entitu kdyz by pak byly de-facto nevyuzite v pripade spolecne funkcionality.
No ja nevim, nikdy jsem nepsal bezne DB aplikace, ale jednoduche tabulky, to jsou akorat nejake ciselniky a tech nebyva moc - ostatne kdyz je to web, tak VS je spolu s pouzivanym frameworkem schopen schopen vyprasit z ViewModelu nejakou default HTML stranku pro CRUD.

Nebo deklarovat v Delphi kodu kazdou entitu kdyz by pak byly de-facto nevyuzite v pripade spolecne funkcionality.
Tomu nerozumim. Ja v DB zadne nevyuzite entity nemam

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 606
  • Karma: 27
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Parametrizované príkazy
« Odpověď #61 kdy: 23-12-2017, 03:13:29 »
Nebo deklarovat v Delphi kodu kazdou entitu kdyz by pak byly de-facto nevyuzite v pripade spolecne funkcionality.
Tomu nerozumim. Ja v DB zadne nevyuzite entity nemam

Ja myslel v Delphi kodu. Viz napr. posledni navrh, proc bych v pripade entit s nimiz by se pracovalo naprosto stejnym zpusobem potreboval jejich definice kdyz bych na ne (v tom kodu) nikde ani nesahl (tim jsem myslel ze by byly [tedy z pohledu kodu] nevyuzite). Nebo zkracene, proc vubec deklarovat napr. takoveto 2 datasety kdyz budou ve finale fungovat uplne stejne a muzu si jejich definici ziskat ze sablony:

Kód: Delphi [Vybrat]
  1. type
  2.   TDataModuleXyz = class(TDataModule)
  3.     ...
  4.     cdsAbc: TClientDataSet;
  5.     cdsAbcId: TIntegerField;
  6.     cdsAbcSomething: TStringField;
  7.     cdsAbcSomethingElse: TStringField;
  8.     ...
  9.     cdsXyz: TClientDataSet;
  10.     cdsXyzId: TIntegerField;
  11.     cdsXyzIdent: TStringField;
  12.     ...
  13. end;

A kdybych v tom navrhovanem framework pro nektery dataset dopsat extra funkcionalitu v kodu, mohl bych si fixni definici datasetu ulozit do stejne konfiguracni sablony (ktera by se jinak naklikala v runtime aplikace) napr. do resources aplikace a vytvorit instanci daneho datasetu a pracovat s nim v kodu. Ano, ztraci se tim typovost v kodu, nicmene porad myslim jen na "jednoduchy editor tabulek" se spolecnou funkcionalitou jez znacne prevazuje psani specifickeho kodu.

Navic, i s tou deklaraci dataset objektu v design-time ses uz typovosti dobrovolne vzdal; napr. proti tomuto by kompilator nemel co rict:

Kód: Delphi [Vybrat]
  1. var
  2.   TheMoment: TDateTime;
  3. begin
  4.   TheMoment := cdsAbcSomething.AsDateTime; // jde o string field
  5. end;

Takze kdybych napsal se svym teoretickym framework pro dataset objekt vytvoreny v runtime za pomoci kodu (definovany napr. sablonou ulozenou v resources aplikace) neco takoveho, nebude v tom pro kopilator zadny rozdil (jen MyRuntimeOnlyDataset by tady byl deklarovany jako TClientDataSet jehoz plny popis [jako napr. zdrojova entita, jake ma vazby, atd.] pochazi z "fixne" ulozene sablony, ne z design-time deklarace):

Kód: Delphi [Vybrat]
  1. var
  2.   TheMoment: TDateTime;
  3. begin
  4.   TheMoment := MyRuntimeOnlyDataset.FieldByName('Something').AsDateTime; // jde o string field
  5. end;
« Poslední změna: 23-12-2017, 03:19:51 od Delfin »
I'm a soldier, so don't panic!

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2003
  • Karma: 103
    • Verze Delphi: D2007, XE3, DX10
Re:Parametrizované príkazy
« Odpověď #62 kdy: 23-12-2017, 08:21:24 »
Ja myslel v Delphi kodu. Viz napr. posledni navrh, proc bych v pripade entit s nimiz by se pracovalo naprosto stejnym zpusobem potreboval jejich definice kdyz bych na ne (v tom kodu) nikde ani nesahl
No to je to, cemu nerozumim: vezmi napr. kalendar svatku v dane zemi - ten prece v aplikaci nemam kvuli tomu, abych ho prohlizel a editoval v CRUD, ale proto, ze zbytek aplikace potrebuje s temi svatky pracovat napr. kdyz zkouma chovani trhu v ruzne dny v tydnu, planuje objednavky jen na pracovni dny, velikost objednavky zalezi na tom, jake dny nasleduji atd.

Ale uznavam, nejsem datar a muj pohledem na svet DB je prioritne objektovy, takze ja entitu nenavrhuju *jen* kvuli CRUD, ale predevsim kvuli zbytku aplikace. To, ze na ciselnik potrebuju CRUD, je uz jenom podruzna zalezitost. A v takove aplikaci nejaky automatismus na CRUD moc nevyresi, tech ciselniku nebyva velke mnozstvi, jednoduche "tabulky" k editovani se jinak moc nevyskytuji - jsou naopak dost slozite a treba s verzovanim dat a slozitost/pracnost vlastni aplikace je radove jinde nez CRUD pro par desitek ciselniku.

Jeste detail k tomu prikladu: tam jsem predokladal ze 1 entita = 1 DM = 1 CDS. S tou namitkou s typovosti mas pravdu, ale proto preferuju ty ORM vsude, kde je to jen trochu mozne.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 606
  • Karma: 27
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Parametrizované príkazy
« Odpověď #63 kdy: 23-12-2017, 10:24:30 »
Ja myslel v Delphi kodu. Viz napr. posledni navrh, proc bych v pripade entit s nimiz by se pracovalo naprosto stejnym zpusobem potreboval jejich definice kdyz bych na ne (v tom kodu) nikde ani nesahl
No to je to, cemu nerozumim: vezmi napr. kalendar svatku v dane zemi - ten prece v aplikaci nemam kvuli tomu, abych ho prohlizel a editoval v CRUD, ale proto, ze zbytek aplikace potrebuje s temi svatky pracovat napr. kdyz zkouma chovani trhu v ruzne dny v tydnu, planuje objednavky jen na pracovni dny, velikost objednavky zalezi na tom, jake dny nasleduji atd.

U aplikace planujici objednavky toho moc nesjednotis treba s ovladanim vyroby. Holt musis napsat funkcionalitu separatne, protoze neni co sjednocovat. Pointou k zamysleni v tomto pripade je, jaka extra logika je treba pro aplikaci spravy domu (coz je pro me z majoritni casti "jen" editor tabulek plus nejake agregaty a reporty), ne jak se da co nejrychleji sestavit ze skladovych zasob dodavatelu raketoplan ;D Chci rict, ze mam za to ze ta aplikace bude mit spoustu shodneho a ze by se mohla casova investice do vlastniho maleho frameworku vyplatit.
« Poslední změna: 23-12-2017, 10:30:10 od Delfin »
I'm a soldier, so don't panic!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3110
  • Karma: 30
    • Verze Delphi: XE7 professional
Re:Parametrizované príkazy
« Odpověď #64 kdy: 23-12-2017, 11:13:25 »
Citace
Pointou k zamysleni v tomto pripade je, jaka extra logika je treba pro aplikaci spravy domu (coz je pro me z majoritni casti "jen" editor tabulek plus nejake agregaty a reporty)
Ten editor tabuliek sa uplatní hlavne pri zakladní SVB. Tých tabuliek je zhruba 16. Okrem podružných - s občasným editovaním. Potom už len občas podľa zmien.
Hlavná činnosť spočíva
  • zmena vo vlastníctve bytov a zmene v bytoch (počty a plochy) - to nie sú časté prípady
  • vo vystavení záloh nájomného pre každý mesiac. Ak dôjde k zmene, je potrebné to dať aj vlastníkovi bytu.
  • v úhradách nájomného
  • v dodatočnom editovaní predpisov záloh a ich úhrad
  • vystavenie vyúčtovania vlastníkom. Raz ročne
Vzhľadom na skutočnosť, že tabuľka záloh je riadková, tak pre s ňou sa nedá použiť editor tabuliek. Komplikuje to aj získavanie údajov z nej, ale nie je to problematické.
Neviem čo máš na mysli pod agregátmi. Predpokladám, že spracovanie samotného vyúčtovania. To je kapitola sama o sebe.
Potom už naozaj nasledujú rôzne zostavy: samotné vyúčtovanie, prehľady číselníkov a registrov (zoznamy vytvorené užívateľom - byty, vlastníci...) a všelijaké štatistiky a prehľady podľa požiadaviek praxe.
« Poslední změna: 23-12-2017, 11:17:30 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3110
  • Karma: 30
    • Verze Delphi: XE7 professional
Re:Parametrizované príkazy
« Odpověď #65 kdy: 23-12-2017, 13:04:24 »
Poznámka: pre tvorbu SQL príkazov užívateľom plánujem použiť jedine FastCube. Tomu by užívatelia mohli rozumieť. Prípadní užívatelia budú totálni analfabeti v IT s rôznym stupňom vzdelania a IQ.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 606
  • Karma: 27
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Parametrizované príkazy
« Odpověď #66 kdy: 23-12-2017, 15:05:00 »
Poznámka: pre tvorbu SQL príkazov užívateľom plánujem použiť jedine FastCube. Tomu by užívatelia mohli rozumieť. Prípadní užívatelia budú totálni analfabeti v IT s rôznym stupňom vzdelania a IQ.

Vsak tim "uzivatelem" muzes byt Ty. Jen budes fakturovat za "slozitou" upravu aplikace ;) Dlouze jsem se diky podobnemu reseni "houpal na zidli" :)
« Poslední změna: 23-12-2017, 15:06:37 od Delfin »
I'm a soldier, so don't panic!

Offline Miroslav Baláž

  • Plnoletý
  • ***
  • Příspěvků: 124
  • Karma: 4
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:Parametrizované príkazy
« Odpověď #67 kdy: 23-12-2017, 15:48:41 »
Poznámka: pre tvorbu SQL príkazov užívateľom plánujem použiť jedine FastCube. Tomu by užívatelia mohli rozumieť. Prípadní užívatelia budú totálni analfabeti v IT s rôznym stupňom vzdelania a IQ.
Pozrel som FastCube. Vyzera slusne. Si s tym spokojny? Ako dlho s tym pracujes?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3110
  • Karma: 30
    • Verze Delphi: XE7 professional
Re:Parametrizované príkazy
« Odpověď #68 kdy: 23-12-2017, 16:16:59 »
Citace
Ako dlho s tym pracujes?
0 sekúnd 8)  Sú tu ľudia, ktorí to majú nasadené ostro. Chvália si to.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2003
  • Karma: 103
    • Verze Delphi: D2007, XE3, DX10
Re:Parametrizované príkazy
« Odpověď #69 kdy: 23-12-2017, 19:33:53 »
ne jak se da co nejrychleji sestavit ze skladovych zasob dodavatelu raketoplan ;D
No tuhle cast resi asynchronne pracujici nevizualni service, nicmene BFU musi mit moznost rucne do vygenerovanych objednavek zasahovat + objednavky potvrzovat :)

Citace
Chci rict, ze mam za to ze ta aplikace bude mit spoustu shodneho a ze by se mohla casova investice do vlastniho maleho frameworku vyplatit.
Ja mel dojem, ze se zabyvas obecnejsim frameworkem, ktery mj. by sel pouzit na ten management bydleni...

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 606
  • Karma: 27
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Parametrizované príkazy
« Odpověď #70 kdy: 24-12-2017, 10:38:29 »
Citace
Chci rict, ze mam za to ze ta aplikace bude mit spoustu shodneho a ze by se mohla casova investice do vlastniho maleho frameworku vyplatit.
Ja mel dojem, ze se zabyvas obecnejsim frameworkem, ktery mj. by sel pouzit na ten management bydleni...

To ano. Jen se ted snazim lobbovat za nepotrebnost deklarace entit v kodu. Samozrejme v pripade nutnosti bys je nadeklarovat v kodu mohl - napr. uplne stejne jako ted programatori deklaruji tridy entit a tvori jejich instance z radku objektu datasetu. A pohledy na takovou entitu samozrejme nejsou podminkou :)
I'm a soldier, so don't panic!

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: