рдЯреНрд░рд╕реНрдЯ Codd рдпрд╛ рдЕрдкрдиреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ?

рд╕рд┐рд░рджрд░реНрдж-рдореБрдХреНрдд рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╡рд╕реНрддреБрдПрдБ: рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдкрд╛рдпрдерди рдореЗрдВ рдХреИрдЪреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг



рдиреЗрдЙрд╢рд╡рд╛рдВрд╕реНрдЯреАрди рдХреИрд╕рд▓

рдЬреВрди 2020 рдореЗрдВ, рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдХреЗ рдареАрдХ 50 рд╕рд╛рд▓ рдпрд╛, рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛ рдореЙрдбрд▓ред рдпрд╣рд╛рдБ рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ - рд╡рд╣реА рдкреНрд░рд╕рд┐рджреНрдз рд▓реЗрдЦ ред рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдбреЙред рдПрдбрдЧрд░ рдлреНрд░реИрдВрдХ рдХреЛрдбрдб рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдХрд╣рддреЗ рд╣реИрдВред рдФрд░, рд╡реИрд╕реЗ, рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдкрд┐рдЫрд▓реЗ 100 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡реИрд╢реНрд╡рд┐рдХ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреА рдлреЛрд░реНрдмреНрд╕ рд╕реВрдЪреА рдореЗрдВ рд╣реИред

рджреВрд╕рд░реА рдУрд░, рд╡рд┐рдЪрд┐рддреНрд░ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд, рдХреЛрдбреЗрдХ рдиреЗ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рднрд╛рд╖рд╛ рдХреЛ рдЕрдкрдиреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдПрдХ рд╡рд┐рдХреГрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдорд╛рдирд╛ред рдПрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ 12 рдирд┐рдпрдо рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ 13 рдирд┐рдпрдо рд╣реИрдВ)ред рдФрд░, рд╕рдЪ рдореЗрдВ, рдЖрдЬ, рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЖрдк рдЙрди рдбреАрдмреАрдПрдордПрд╕ рдХреЛ рдирд╣реАрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рдХреЗ "рдирд┐рдпрдо 0" рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХреЛрдИ рднреА рдЕрдкрдиреЗ рдбреАрдмреАрдПрдордПрд╕ рдХреЛ 100% рд╕рдВрдмрдВрдзрдкрд░рдХ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ :) рд╢рд╛рдпрдж рдХреБрдЫ рдЕрдкрд╡рд╛рдж рд╣реИрдВ, рдореБрдЭреЗ рдмрддрд╛рдПрдВ?

рд╕рдВрдмрдВрдзрдкрд░рдХ рдореЙрдбрд▓ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЕрдзреНрдпрдпрди рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдмреАрдЪ, 2019 рдХреЗ рдЗрд╕ рд╡рд░реНрд╖ рдореЗрдВ рд╣рдо рдПрдХ рдФрд░ рд╡рд░реНрд╖рдЧрд╛рдВрда рднреА рдордирд╛рдПрдВрдЧреЗ - рдареАрдХ 10 рд╕рд╛рд▓ рдкрд╣рд▓реЗ, #NoSQL рд╣реИрд╢рдЯреИрдЧ, рд╡рд╣ рдмрд╛рдж рдореЗрдВ "рди рдХреЗрд╡рд▓ SQL" рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЕрдкрдиреА рддреАрд╡реНрд░ рдкреИрда рд╢реБрд░реВ рдХреАред

рдЗрддрдирд╛ рд▓рдВрдмрд╛ рдкрд░рд┐рдЪрдп рдХреНрдпреЛрдВ? рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдмреНрд░рд╣реНрдорд╛рдВрдб рдореЗрдВ рдбреЗрдЯрд╛ (рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо), рдФрд░ рд╕рдВрдмрдВрдзрдкрд░рдХ рдореЙрдбрд▓ рдХреА рдПрдХрд╛рдзрд┐рдХрд╛рд░ рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рдирдореНрд░ рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдПрдХ рд╡рд┐рднрд╛рдЬрд┐рдд рдЪреЗрддрдирд╛ред рдХреНрдпреЛрдВрдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╕рд┐рд░ рдореЗрдВ рдХрд╛рдо рдХреА рд╡рд╕реНрддреБрдПрдВ (рдУрдУрдкреА рднреА рдХреБрд▓, рд╕рд╣реА рд╣реИ?), рдЗрди рд╕рднреА рд╕реВрдЪрд┐рдпреЛрдВ, рдХрддрд╛рд░реЛрдВ, рдкреЗрдбрд╝реЛрдВ, рдвреЗрд░, рд╢рдмреНрджрдХреЛрд╢реЛрдВ, рдзрд╛рдЧреЗ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдЕрдирдиреНрддрддрд╛, рдЯреЗрдмрд▓ рд╕реЗ рджреВрд░ рд╣реИрдВред

рдФрд░ рдЕрдЧрд░ рдЖрдк рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЖрдзреБрдирд┐рдХ рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рднрдВрдбрд╛рд░рдг рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ? рдЪрд▓реЛ рд╕реАрдзреЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рджрд╛рд╣рд┐рдиреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдХреЛрдИ рднреА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред DBMS рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдмреА-рдЯреНрд░реА рдХреА рдХрд┐рд╕реНрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, PostrgeSQL рдореЗрдВ) рдпрд╛, рдмрд╣реБрдд рдХрдо рдЕрдХреНрд╕рд░, рд╢рдмреНрджрдХреЛрд╢-рдЖрдзрд╛рд░рд┐рдд рднрдВрдбрд╛рд░рдгред рджреВрд╕рд░реА рдУрд░, рдмреИрд░рд┐рдХреЗрдбреНрд╕, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдмреАрдПрдордПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЧреИрд░-рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдПрдХ рдЕрдирд╛рдбрд╝реА рдордзреНрдпрд╡рд░реНрддреА рдбреЗрдЯрд╛ рдкрд░рдд рдХреЗ рд╕рд╛рде рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЧреИрдк рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рдФрд░, рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдВрддрд░рд┐рдХ рджреНрд╡рд┐рднрд╛рдЬрди рддрдирд╛рд╡, рдкреНрд░рдгрд╛рд▓реАрдЧрдд рдЕрд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдбрд┐рдмрдЧ рдЕрдирд┐рджреНрд░рд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

рдпрд╣реА рд╣реИ, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рд╣реИ - рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдкреИрдХ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп рдХреБрдЫ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рд░рд╛рд╢рд╛? рдирд╣реАрдВ :) рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ-рд░рд┐рд▓реЗрд╢рдирд▓ рдореИрдкрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдпрд╣ рдУрдЖрд░рдПрдо рдХреЗ рдЖрдо рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╣реИ? рдЖрдЗрдП рд╣рдо рдЗрд╕ рдкрд╡рд┐рддреНрд░ рдпреБрджреНрдз рдХреЛ рд╕рд╛рдерд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдпреЗрдЧреВ рдмреБрдЧреЗрдВрдХреЛ рддрдХ рдЫреЛрдбрд╝ рджреЗрдВред рдФрд░ рдкрд┐рдЫрд▓реА рд╕рджреА рдХреА рдпрд╣ рдкреВрд░реА рдХрд╣рд╛рдиреА, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдВрдХрд▓ рдмреЙрдм рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП ред

рдмреЗрд╢рдХ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ "рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдмреИрдЧ" (рд░реЙрдмрд░реНрдЯ рдорд╛рд░реНрдЯрд┐рди "рдкреНрдпреЛрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░") рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреБрдХреНрдд рдзрд╛рд░рд╛ рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рддреБрд░рдВрдд рд╣рдореЗрдВ рднрд╛рд╖рд╛ рдореЗрдВ рд╕реАрдорд┐рдд рдХрд░ рджреЗрдЧрд╛, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рднрдВрдбрд╛рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░реЗрдВрдЧреЗред

рдмрд╛рдЗрдЯ рдмреИрдЧ рдХреЗ рд╕рд╛рде рдЗрди рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рдХрд╛ рдПрдХ рд╕реБрдЦрдж рдЕрдкрд╡рд╛рдж рд╣реИ - рдЗрдВрдЯреЗрд░рд╕рд┐рд╕реНрдЯрдо рдХреИрдЪ рдбреАрдмреАрдПрдордПрд╕ (рдФрд░ рдЕрдм рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдо рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдбреЗрдЯрд╛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо)ред рдпрд╣ рд╢рд╛рдпрдж рджреБрдирд┐рдпрд╛ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдбреАрдмреАрдПрдордПрд╕ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдирд╣реАрдВ рдЫрд┐рдкрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рд╕реЛрдЪ рд╕реЗ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИ "рдпрд╣ рд╕рдм рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред" рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдЬреАрдирд╕ рдХреЛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдмрд┐рдВрджреБ рдЯреЛрдкреА рдореЗрдВ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ (рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП!)ред

рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЪрд░рд┐рддреНрд░ рдФрд░ рдмрд╛рдЗрдирд░реА рд╕реНрдЯреНрд░реАрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

//       - // :      ,     ,     , ,   Class FW.Events Extends %Persistent { Property "My name" As %String; } //      //   ┬л┬╗  set haJS = ##class(FW.Events).%New() //   write haJS.%Id() 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдФрд░ рдпрд╣ рдЕрджреНрднреБрдд рд╣реИ, рдЖрдк рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рди рдХреЗрд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ, рджреЗрд╢реА рдореЗрдВ рдХреИрдЪ рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдкрд╛рдпрдерди, рдЬрд╛рд╡рд╛, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╕реА ++, рд╕реА #, рдкрд░реНрд▓ рдореЗрдВ рд╕реАрдзреЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдФрд░ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рднреА, рдУрд╣ рд╣реЙрд░рд░ :)ред SQL рдХреНрд╡реЗрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рд╕рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрд╡рдпрдВ (рдФрд░ рдЬрд╛рджреВ рд╢рдмреНрдж SqlProc) рдХреЗ рддрд░реАрдХреЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рднреА рдЬрд╛рджреВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреИрдЪ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рд╣реИред
Intersystems Cach├й DBMS рдХреА рдирд┐: рд╢реБрд▓реНрдХ рдкрд░реАрдХреНрд╖рдг рд╕реБрд╡рд┐рдзрд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?
рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ, рдЪрд╛рд╣реЗ рдХреЛрдИ рднреА рдмреБрд░реА рднрд╛рд╖рд╛ рдХрд╣реЗ! :) рдЖрдк рдпрд╣рд╛рдВ Cach├й рдХреЗ рдПрдХрд▓-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд░реНрдг-рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрдкрдХреЛ рдореБрдлреНрдд рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред рдореИрдХрдУрдПрд╕, рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдпрд╣ рдПрдЯрд▓рд┐рдпрд░ рдЖрдИрдбреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реАрдзреЗ рд╡рд░реНрдбрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдХрд╛рдЪ рдбреАрдмреАрдПрдордПрд╕ рд╕рд░реНрд╡рд░ (рдФрд░ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдо рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо) рддрдХ рд╕реАрдзреЗ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЬреЛ рдЧреНрд░рд╣рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╕рднреА рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рд╣реИрдВ ред

рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдкрд░рд┐рдЪрд┐рдд рд╣реИ, рдЖрдк рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕рд░рд▓ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдФрд░ рдЕрдм рдХреБрдЫ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгред рдЖрдЗрдП рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдкрд╛рдпрдерди рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдмрд╣реБрдд рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╛рдпрдерди рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде "рдЕрдзрд┐рдХрддрдо рдЖрддреНрдореАрдпрддрд╛" рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ - рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдПрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ, рдУрдУрдкреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ рдФрд░ рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ :)

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЬреЛрд░рджрд╛рд░ рдЦрд╛рдмрд░реЛрд╡рд╕реНрдХ (рдЦрдмреНрд░реЛрд╡рд╕реНрдХ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ!) "рдмреИрдареЛ-рдиреАрдЪреЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рд░реВрдкрд░реЗрдЦрд╛" рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВред рд╡реИрдЪрд╛рд░рд┐рдХ рд╕реНрд░реЛрдд рдХреЛрдб github.com/Hajsru/framework-weekend рдкрд░ рдирд┐рд╣рд┐рдд рд╣реИ рдФрд░ рдкрд╛рда рдореЗрдВ рд╣рдорд╛рд░рд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХрдо рд╣реИред
MacOS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рд░реАрдХрд┐рдпреЛрдВред рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдореЙрдбреНрдпреВрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ DYLD_LIBRARY_PATH рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ Cach├й рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
рдирд┐рд░реНрдпрд╛рдд DYLD_LIBRARY_PATH = / рдЖрд╡реЗрджрди / рдХреИрд╢ / рдмрд┐рди: $ DYLD_LIBRARY_PATH
рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдо ObjectScript рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреНрд▓рд╛рд╕реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ


рддреЛ рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВред Cach├й рдореЗрдВ рдХрдХреНрд╖рд╛рдПрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛрдВрдЧреАред рдЖрдк рдПрдХ рдЖрдИрдбреАрдИ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдкрдиреЗ рдХреИрдЪ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рдкреЛрд░реНрдЯрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рдХреНрд▓рд╛рд╕ рдХреЛрдб рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ (рд╣рд╛рдБ, рдХреИрдЪ рдбреАрдмреАрдПрдордПрд╕ рд╕рд┐рд░реНрдл рдПрдХ рдбреАрдмреАрдПрдордПрд╕ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ): рд╕рд┐рд╕реНрдЯрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░> рдХреНрд▓рд╛рд╕реЗрд╕> рдЖрдпрд╛рдд (рдиреЗрдорд╕реНрдкреЗрд╕ рдпреВрдПрд╕рдИрдЖрд░)ред

рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рдЧреНрд▓реЛрдм рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред Cach├й рдкреНрд░рдмрдВрдзрди рдкреЛрд░реНрдЯрд▓ рдореЗрдВ рднреА рджреЗрдЦреЗрдВ: рд╕рд┐рд╕реНрдЯрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░> рдЧреНрд▓реЛрдмрд▓реНрд╕ (Namespace USER)ред

 //    , ,      Class FW.Event Extends %Persistent { Property title as %String; Property description as %String; Property date as %Date; Property visitors as list of FW.Attendee; } //    / Class FW.Attendee Extends %Persistent { Property name As %String; } 

рдкрд╛рдпрдерди рд╕реЗ Cach├й рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдБрдЪрдирд╛


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, Cach├й DBMS рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рд╣рдо рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд░реВрдк рдореЗрдВ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВред
рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдЙрдкрдпреЛрдЧреА рддрдереНрдпред рдирд┐: рд╢реБрд▓реНрдХ, рдпрд╣ рдХреИрдЪ рдбреАрдмреАрдПрдордПрд╕ рдХрд╛ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рджреЛ рд╕рдХреНрд░рд┐рдп рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдЖрдИрдбреАрдИ рд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд░рдЦрдирд╛ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдкрд╛рдпрдерди рдХреЛрдб рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди IDE рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрд╛рдп рд╣реИред
 #   Cach├й    Python3 import intersys.pythonbind3 #    conn = intersys.pythonbind3.connection() conn.connect_now("localhost[1972]:USER","_SYSTEM","SYS", None) #    print ("conn = %d " % conn.handle) #     database = intersys.pythonbind3.database(conn) 

рдФрд░ рдЕрдм рд╣рдо IT рдЗрд╡реЗрдВрдЯреНрд╕ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдВрдЧреЗред рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдкрд╣рд▓рд╛ рдЖрдпреЛрдЬрди рднрд╛рдЧреАрджрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рд╕рджрд╕реНрдп рдХрд╛ рдирд╛рдоред

 #         class Attendee: #        def __init__ (self): self.att = database.create_new("FW.Attendee", None) #             id def new (self, name): self.att.set("name", name) self.att.run_obj_method("%Save",[]) #    id     def use (self, id): self.att = database.openid("FW.Attendee",str(id),-1,-1) #       def clean (self): id = self.att.run_obj_method("%Id",[]) self.att.run_obj_method("%DeleteId", [id]) 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо Cach├й рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд░реИрдкрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: рд╕реЗрдЯ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╣рдо рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдирд╛рдо рдХреЛ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдкреИрдХреЗрдЬ рдФрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдУрдкрдирд┐рдб рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реА рддрд░рд╣ рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдЕрдкрдиреЗ рдкреВрд░реНрд╡рдЬреЛрдВ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдХрдХреНрд╖рд╛ рд╕рд╣рд┐рдд рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╡рд┐рдзрд┐ рдирд╛рдо рдФрд░ рдХреЙрд▓ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде run_obj_method () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд▓рд╛рдЗрди рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рджреВ: self.att.run_obj_method ("% рд╕рд╣реЗрдЬреЗрдВ", [])
рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реАрдзреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, рдЬреИрд╕реЗ рдХрд┐ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рдФрд░ рднрджреНрджрд╛ рдУрдЖрд░рдПрдоред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░рдХреГрддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕рдХреА рдХрдХреНрд╖рд╛ рдХреЗ рддрд░реАрдХреЛрдВ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛) рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░, рд╣рдореЗрдВ рдкрд░реНрд╕реЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдФрд░ рдЙрд╕рдХреЗ рдкреВрд░реНрд╡рдЬреЛрдВ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рддрд░реАрдХреЛрдВ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рддрдХ рдПрдХ рдмреЛрдирд╕ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдкреВрд░реА рд╕реВрдЪреА рд╣реИ , рдпрджрд┐ рд╡рд╣ рд╣реИред

рдкрд╣рд▓рд╛ рд╕рджрд╕реНрдп рдмрдирд╛рдПрдВ:

 att = Attendee() att.new("") 

рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ FW.AttendeeD рдирд╛рдо рд╕реЗ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдФрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛:



рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЕрдкрдиреА рдЖрдИрдбреА (рдирдВрдмрд░ 1 рдХреЗ рд╕рд╛рде) рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдк рдЗрд╕ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 att = Attendee() att.use(1) print (att.att.get("name")) 

рдФрд░ рдЕрдм, рдлрд┐рд░ рд╕реЗ рдЖрдИрдбреА рдЬрд╛рдирдирд╛, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 att = Attendee() att.use(1) att.clean() 

рдЬрд╛рдБрдЪ рдХрд░реЗрдВ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рд╡реИрд╢реНрд╡рд┐рдХ рдореЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдЕрднреА рднреА рдЖрдкрдХреА рдореЗрдореЛрд░реА рдХреЗ "рдореЗрдореЛрд░реА" рдореЗрдВ рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред

рдЪрд▓рд┐рдП рдЕрдЧрд▓рд╛ рдХрджрдо рдЙрдард╛рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдИрд╡реЗрдВрдЯ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдПрдБред

 #        class Event: #        def __init__ (self): self.event = database.create_new("FW.Event", None) #            id def new (self, title, desc, date): self.event.set("title", title) self.event.set("description", desc) self.event.set("date", date) self.event.run_obj_method("%Save",[]) #    id    def use (self, id): self.event = database.openid("FW.Event",str(id),-1,-1) #       def addAttendee (self, att): eventAtt = self.event.get("visitors") eventAtt.run_obj_method("Insert", [att]) self.event.set("visitors", eventAtt) self.event.run_obj_method("%Save",[]) #      def clean (self): id = self.event.run_obj_method("%Id",[]) self.event.run_obj_method("%DeleteId", [id]) 

рдХрдХреНрд╖рд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрдХреНрд╖рд╛ рд╕рджрд╕реНрдп рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рд╣реИ AddAttendee (att)ред

рд╣рдо рдПрдХ рдирдИ рдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ-рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:

 haJS = Event() haJS.new("haJS", " ", "2019-01-19") 

рдЗрд╕реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рддрд┐рдерд┐ рд╕реНрд╡рддрдГ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЬрдм рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдореВрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА):



рдпрд╣ рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЛ рдШрдЯрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ:

 #     haJS = Event() haJS.use(1) #    att = Attendee() att.new("") #      haJS.addAttendee(att.att) 

рддреЛ, рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рд░рдгреАрдмрджреНрдз рд╕рдВрдЧреНрд░рд╣рдг рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЖрдк рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд╛рдЗрдерди рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреИрдЪ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рд╣рдореЗрд╢рд╛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдФрд░ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдбреЗрд╡рд▓рдкрд░ рд╕рдореБрджрд╛рдп рдкреЛрд░реНрдЯрд▓ рдкрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ - рдпрд╣ рд╕рдореБрджрд╛рдп рдХреЗ 5000 рд╕рджрд╕реНрдпреЛрдВ рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИ редintersystems.com
рд╕рд╣рд╛рдпрддрд╛: InterSystems Cach├й рдорд▓реНрдЯреАрдореЙрдбрд▓ DBMS рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдпреА рд╡рд┐рд╢реНрд╡ рдиреЗрддрд╛ рдмрдирд╛ рд╣реБрдЖ рд╣реИ


Source: https://habr.com/ru/post/hi435612/


All Articles