рдХреНрдпреВрдЯреА рдХреЗ рд▓рд┐рдП рдУрдЖрд░рдПрдо рдХрд╛ рдЕрд╡рд▓реЛрдХрди

рдкрд░рд┐рдЪрдп





рд╢реБрдн рджреЛрдкрд╣рд░, рдкреНрд░рд┐рдп рд╕рд╛рдереА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░!



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



рдХреБрдЫ рдФрд░ рд╣реИ рдЬреЛ рд╡рд╛рд░реНрд╖рд┐рдХ рдЕрд╡рдзрд┐ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдХреНрдпреВрдЯреА рдХреЗ рд▓рд┐рдП, рдУрдЖрд░рдПрдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреЗ, рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ, рдорд╢рд░реВрдо рдХреА рддрд░рд╣ред рдХреНрдпрд╛ рдХреЛрдИ рдкрд╡рд┐рддреНрд░ рд╕реНрдерд╛рди рдЦрд╛рд▓реА рд╣реИ? рдПрдХ рдорд╛рдВрдЧ рд╣реИ, рдпрд╣рд╛рдВ рдХреА рдкреЗрд╢рдХрд╢ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ Qt ORM рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдкрдврд╝реЗрдВред рдореИрдВ рдореЙрдирд┐рдЯрд░ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдФрд░ рддрдВрддреНрд░ рдкрд░ рдЕрдзрд┐рдХрддрдо рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛; рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдУрдЖрд░рдПрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рд╕рдореВрд╣ рд╣реИред



(рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЗрдЦ рдХреБрдЫ рд╣рдж рддрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд▓рд┐рдП рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ рдЕрдкрдиреЗ рдУрдЖрд░рдПрдо рдХреЗ рдХрд╛рд░рдг рдкреНрд░рдХрдЯ рд╣реБрдЖ; рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдореИрдВ рди рдХреЗрд╡рд▓ рдЦреБрдж рдХреЛ рдкреАрдЖрд░ рдХрд░рддрд╛ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдореВрд▓реНрдпрд╛рдВрдХрди рднреА рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХреГрдкрдпрд╛ рд╕рдордЭреЗрдВ: рдмреЗрд╣рддрд░реАрди рдЗрд░рд╛рджреЗ)ред





QxOrm, рд╡рд░реНред 1.1.1





рд▓реЗрдЦрдХ / рдорд╛рд▓рд┐рдХ : QxOrm рдлреНрд░рд╛рдВрд╕

рд╕рд╛рдЗрдЯреЗрдВ : рдЖрдзрд┐рдХрд╛рд░рд┐рдХ , SourceForge рдкрд░

рд▓рд╛рдЗрд╕реЗрдВрд╕ : GPLv3 + рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ

рдирд┐рд░реНрднрд░рддрд╛рдПрдБ : Qt (4.5+), рдмрдврд╝рд╛рд╡рд╛ (1.38+)

рд╡рд┐рдХрд╛рд╕ рдХреА рдЕрд╡рдзрд┐ : 2010 рдХреА рд╢реБрд░реБрдЖрдд, рдЖрдЦрд┐рд░реА рдмрджрд▓рд╛рд╡ рдЕрдкреНрд░реИрд▓ 2010 рд╣реИ

рдкреНрд░рд▓реЗрдЦрди : рдЕрдзреВрд░рд╛, рдлреНрд░реЗрдВрдЪ рдореЗрдВ

рдЙрджрд╛рд╣рд░рдг : рд╣рд╛рдБ, рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА



рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рджреГрдврд╝рддрд╛ (QtSql рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рдХреНрд░рдорд╛рдВрдХрди (рдмрдврд╝рд╛рд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ :: рдХреНрд░рдорд╛рдВрдХрди) рдФрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред



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



рдЙрджрд╛рд╣рд░рдг, рдХреЛрдб рдФрд░ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред



рдкреЗрд╢реЗрд╡рд░реЛрдВ:



рд╡рд┐рдкрдХреНрд╖:



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



рдореИрдкрд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рд╕рднреА рдХреЛрдб рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):


рдХреНрд▓рд╛рд╕ рдбреНрд░рдЧ

{

рдЬрдирддрд╛ :

рд▓рдВрдмреА рдЖрдИрдбреА ;

QString рдирд╛рдо ;

QString рд╡рд┐рд╡рд░рдг ;



рджрд╡рд╛ ( ) : рдЖрдИрдбреА ( 0 ) { ; }

рдЖрднрд╛рд╕реА ~ рджрд╡рд╛ ( ) { ; }

} ;



QX_REGISTER_HPP_MY_TEST_EXE ( рджрд╡рд╛, qx :: рд▓рдХреНрд╖рдг :: no_base_class_defined , 1 )





QX_REGISTER_CPP_MY_TEST_EXE ( рджрд╡рд╛ ) // рдпрд╣ рдореИрдХреНрд░реЛ QxOrm рд╕рдВрджрд░реНрдн рдореЗрдВ 'рджрд╡рд╛' рд╡рд░реНрдЧ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ



рдирд╛рдорд╕реНрдерд╛рди qx {

рдЯреЗрдореНрдкрд▓реЗрдЯ <> рд╢реВрдиреНрдп рд░рдЬрд┐рд╕реНрдЯрд░_рдХреНрд▓рд╛рд╕ ( QxClass < рджрд╡рд╛ > рдФрд░ рдЯреА )

{

рдЯреАред рдЖрдИрдбреА ( рдФрд░ рджрд╡рд╛ :: рдЖрдИрдбреА , "рдЖрдИрдбреА" ) ; // рд░рдЬрд┐рд╕реНрдЯрд░ 'рджрд╡рд╛ :: рдЖрдИрдбреА' <=> рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА

рдЯреАред рдбреЗрдЯрд╛ ( рдФрд░ рджрд╡рд╛ :: рдирд╛рдо , "рдирд╛рдо" , 1 ) ; // рд░рдЬрд┐рд╕реНрдЯрд░ 'рджрд╡рд╛ :: рдирд╛рдо' рд╕рдВрдкрддреНрддрд┐ 'рдХреБрдВрдЬреА' рдирд╛рдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг '1' рдХреЗ рд╕рд╛рде

рдЯреАред рдбреЗрдЯрд╛ ( рдФрд░ рджрд╡рд╛ :: рд╡рд┐рд╡рд░рдг , "desc" ) ; // рд░рдЬрд┐рд╕реНрдЯрд░ 'рджрд╡рд╛ :: рд╡рд┐рд╡рд░рдг' рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╕рдВрдкрддреНрддрд┐ 'desc'

} }





рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:


// рдбреНрд░рдЧреНрд╕ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЯреЗрдмрд▓ 'рдбреНрд░рдЧ' рдмрдирд╛рдПрдВ

QSqlError daoError = qx :: dao :: create_table < drug > ( ) ;



// рдХрдВрдЯреЗрдирд░ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреНрд░рдЧреНрд╕ рдбрд╛рд▓реЗрдВ

// 'd' рдХреА рд╕рдВрдкрддреНрддрд┐ 'd1', 'd2' рдФрд░ 'd3' рдСрдЯреЛ рдЕрдкрдбреЗрдЯреЗрдб рд╣реИрдВ

daoError = qx :: dao :: insert ( lst_drug ) ;



// рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджреВрд╕рд░реА рджрд╡рд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

d2 - > рдирд╛рдо = "name2 рд╕рдВрд╢реЛрдзрд┐рдд" ;

d2 - > рд╡рд┐рд╡рд░рдг = "desc2 рд╕рдВрд╢реЛрдзрд┐рдд" ;

daoError = qx :: dao :: update ( d2 ) ;



// рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкрд╣рд▓реА рджрд╡рд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ

daoError = qx :: dao :: delete_by_id ( d1 ) ;



// рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджрд╡рд╛рдУрдВ рдХреА рдЧрдгрдирд╛

рд▓рдВрдмреА lDrugCount = qx :: dao :: count < drug > ( ) ;



// рдПрдХ рдирдП рдЪрд░ рдореЗрдВ рдЖрдИрдбреА '3' рдХреЗ рд╕рд╛рде рджрд╡рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

drug_ptr d_tmp ; d_tmpред рд░реАрд╕реЗрдЯ ( рдирдИ рджрд╡рд╛ ( ) ) ;

d_tmp - > id = 3 ;

daoError = qx :: dao :: fetch_by_id ( d_tmp ) ;



// рдПрдХреНрд╕рдПрдордПрд▓ рдкреНрд░рд╛рд░реВрдк (рдХреНрд░рдорд╛рдВрдХрди) рдХреЗ рддрд╣рдд рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХрдВрдЯреЗрдирд░ рд╕реЗ рджрд╡рд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ

qx :: рдХреНрд░рдорд╛рдВрдХрди :: xml :: to_file ( lst_drug, "/export_drugs.xml " ) ;



// xml рдлрд╝рд╛рдЗрд▓ рд╕реЗ рджрд╡рд╛рдУрдВ рдХреЛ рдПрдХ рдирдП рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВ

type_lst_drug lst_drug_tmp ;

qx :: serialization :: xml :: from_file ( lst_drug_tmp, "./export_drugs.xml" ) ;



// рдПрдХ рджрд╡рд╛ рдХрд╛ рдХреНрд▓реЛрди

drug_ptr d_clone = qx :: рдХреНрд▓реЛрди ( * d1 ) ;



// рд╡рд░реНрдЧ рдирд╛рдо (рдХрд╛рд░рдЦрд╛рдирд╛) рджреНрд╡рд╛рд░рд╛ рдПрдХ рдирдИ рджрд╡рд╛ рдмрдирд╛рдПрдБ

рдмрдврд╝рд╛рд╡рд╛ рджреЗрдирд╛ :: рдХрд┐рд╕реА рднреА d_any = qx :: рдмрдирд╛рдирд╛ ( "рджрд╡рд╛" ) ;



// рдбреНрд░рдЧреНрд╕ рдХрдВрдЯреЗрдирд░ рдХреЛ 'qx :: cache' рдореЗрдВ рдбрд╛рд▓реЗрдВ

qx :: cache :: set ( "рдбреНрд░рдЧреНрд╕" , lst_drug ) ;







QDjango, рдХреНрд░рд┐рдпрд╛ред ???



рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ : рдЬреЗрд░реЗрдореА Lain├й, Bollor├й рджреВрд░рд╕рдВрдЪрд╛рд░

рд╕рд╛рдЗрдЯреЗрдВ : рдЖрдзрд┐рдХрд╛рд░рд┐рдХ , рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА

рд▓рд╛рдЗрд╕реЗрдВрд╕ : GPLv3, LGPLv3

рдирд┐рд░реНрднрд░рддрд╛рдПрдБ : Qt (4.5+)

3 рдЬреВрди, 2010 рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ

рдкреНрд░рд▓реЗрдЦрди : рдкреВрд░реНрдг, рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ, рдбреЙрдХреНрд╕реАрдЬрди-рдЬрдирд┐рдд

рдЙрджрд╛рд╣рд░рдг : рд╣рд╛рдБ, рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреАред



рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп : рдХреНрдпреВрдЯреА рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдлреНрдд рдУрдЖрд░рдПрдо рдмрдирд╛рдирд╛, рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ Django рдХреЗ рд╕рдорд╛рдиред



рдЗрд╕ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЬрд▓реНрджрдмрд╛рдЬреА рд╣реЛрдЧреА, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрднреА рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреИрд╕реЗред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдПрдХ рдбреАрдПрдУ / рд╕рдХреНрд░рд┐рдп рд░рд┐рдХреЙрд░реНрдб-рдУрдЖрд░рдПрдо рд╣реЛрдЧрд╛ред рдЕрдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА SELECT рдЬрдирд░реЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдХреНрд░рд┐рдПрдЯ рдЯреЗрдмрд▓ рдЬреЗрдирд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреЗрдмрд▓ рдмрдирд╛рдПрдВред рд▓реЗрдЦрдХ рдиреЗ рддреБрд░рдВрдд WHERE рдкреАрдврд╝реА рдХреЛ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛; рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, AND рдФрд░ OR рдСрдкрд░реЗрдЯрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдпрд╣реА рд╣реИ, рдЖрдк рдПрдХ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рднреА рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рд╕рдорд╛рди рддрд░реАрдХреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ QxOrm рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рд╡рд┐рд░рд╛рд╕рдд ... рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рдВрднрд╡рддрдГ, рд▓реЗрдЦрдХ рдЕрдЪреНрдЫреЗ рдУрдУрдкреА рдХреЛрдб рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдлрд╛рд░реНрдо рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рдм рд╣реИред рд╣рдо рдпрд╣ рдорд╛рдиреЗрдВрдЧреЗ рдХрд┐ рдПрдХ рд╡рд░реНрд╖ рдореЗрдВ рдПрдХ рдЖрдзрд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА ORM рдкреНрд░рдгрд╛рд▓реА QDjango рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕рдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред



рд▓реЗрдЦрдХ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред


// рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛

QDjangoQuerySet < рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ > рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ;



// рдРрд╕реЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдЬрд┐рдирдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб "foo" рд╣реИ рдФрд░ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо "рдмрд╛рд░" рдирд╣реАрдВ рд╣реИ

QDjangoQuerySet < User > someUsers ;

рдХреБрдЫ рдпреВрдЬрд░реНрд╕ = рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдлрд╝рд┐рд▓реНрдЯрд░ ( QDjangoWhere ( "рдкрд╛рд╕рд╡рд░реНрдб" , QDjangoWhere :: рдмрд░рд╛рдмрд░ , "рдлреВ" ) &&

QDjangoWhere ( "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" , QDjangoWhere :: NotEquals , "bar" ) ) ;



// рдЙрди рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдЬрд┐рдирдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо "рдлреВ" рдпрд╛ "рдмрд╛рд░" рд╣реИрдВ

рдХреБрдЫ рдпреВрдЬрд░реНрд╕ = рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдлрд╝рд┐рд▓реНрдЯрд░ ( QDjangoWhere ( "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" , QDjangoWhere :: рдмрд░рд╛рдмрд░ , "рдлреВ" )) ||

QDjangoWhere ( "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" , QDjangoWhere :: рдмрд░рд╛рдмрд░ , "рдмрд╛рд░" ) ) ;



// рдЙрди рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдЬрд┐рдирдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо "f" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ:

рдХреБрдЫ рдпреВрдЬрд░реНрд╕ = рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдлрд╝рд┐рд▓реНрдЯрд░ ( QDjangoWhere ( "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" , QDjangoWhere :: StartsWith , "f" ) ) ;



// рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕реАрдорд╛

рдХреБрдЫ рдпреВрдЬрд░реНрд╕ = рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рд╕реАрдорд╛ ( 0 , 100 ) ;



// рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

int numberOfUsers = someUsersред рдЖрдХрд╛рд░ ( ) ;



// рдкрд╣рд▓реЗ рдорд┐рд▓рд╛рди рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ * FirstUser = someUserред рдкрд░ ( 0 ) ;



// рдореБрдлреНрдд рдореЗрдореЛрд░реА

рдкрд╣рд▓реЗ рд╣рдЯрд╛рдПрдВ ;



// рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рд╕реВрдЪреА рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

QList < QList < QVariant >> propertyLists = someUsersред рдорд╛рди рд╕реВрдЪреА ( QStringList ( ) << "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" << "рдкрд╛рд╕рд╡рд░реНрдб" ) ;



// рдХреНрд╡реЗрд░реАрд╕реЗрдЯ рдореЗрдВ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ

someUsersред рдирд┐рдХрд╛рд▓реЗрдВ ( ) ;


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧ:


рд╡рд░реНрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ : рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ QDjangoModel

{

Q_OBJECT

Q_PROPERTY ( QString рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо READ рдкреНрд░рдпреЛрдХреНрддрд╛рдирд╛рдо WRITE setUsername )

Q_PROPERTY ( QString рдкрд╛рд╕рд╡рд░реНрдб рдкрдврд╝реЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рд░рд╛рдЗрдЯ рд╕реЗрдЯрдкрд╛рд╕рд╡рд░реНрдб )



Q_CLASSINFO ( "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" , " max_length = 255" )

Q_CLASSINFO ( "рдкрд╛рд╕рд╡рд░реНрдб" , " max_length = 128" )



рдЬрдирддрд╛ :

QString рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо ( ) рдХрд╛рд╕реНрдЯ ;

void setUsername ( const QString & username ) ;



QString рдкрд╛рд╕рд╡рд░реНрдб ( ) рдХрд╛рд╕реНрдЯ ;

рд╢реВрдиреНрдп рд╕реЗрдЯрдкрд╛рд╕рд╡рд░реНрдб ( const QString рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб ) ;



рдирд┐рдЬреА :

QString m_username ;

QString m_password ;

} ;




QtPersistence, рд╡рд░реНред 0.1.1



рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ : рдореИрдЯ рд░реЛрдЬрд░реНрд╕

рд╕рд╛рдЗрдЯреЗрдВ : SourceForge рдкрд░

рд▓рд╛рдЗрд╕реЗрдВрд╕ : LGPLv3

рдирд┐рд░реНрднрд░рддрд╛рдПрдБ : Qt (4.5+)

рд╡рд┐рдХрд╛рд╕ рдХреА рдЕрд╡рдзрд┐ : 2009 рдХрд╛ рдЕрдВрдд - 2010 рдХреА рд╢реБрд░реБрдЖрдд

рдкреНрд░рд▓реЗрдЦрди : рдХреЛрдИ рдирд╣реАрдВ

рдЙрджрд╛рд╣рд░рдг : рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЦрд░рд╛рдм



рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп : рд░реВрдмреА рдХреЗ рд▓рд┐рдП рдХреБрдЫ (?) рдХреЗ рд╕рдорд╛рди рд╕рдХреНрд░рд┐рдп рд░рд┐рдХреЙрд░реНрдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрдпреВрдЯреА рдХреЗ рд▓рд┐рдП рдПрдХ рдУрдЖрд░рдПрдо рдмрдирд╛рдПрдВред



рдПрдХ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдХреНрдпрд╛ рдмрджрддрд░ рд╣реИ: рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ; рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рдиреЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╣ рдЬреЛ рдХреБрдЫ рдХрд░ рд╕рдХрддреА рд╣реИ, рд╡рд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдкрд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред



рдЙрдкрдпреЛрдЧ рдХреЗ рдПрдХрдорд╛рддреНрд░ рдЙрджрд╛рд╣рд░рдг рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ (рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдкрд░реАрдХреНрд╖рдг рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред


рдХреНрд▓рд╛рд╕ рдлреЗрдХрдмреБрдХ : рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ QPersistantObject

{

Q_OBJECT

Q_PROPERTY ( QString рд▓реЗрдЦрдХ READ рд▓реЗрдЦрдХ WRITE setAuthor )

Q_PROPERTY ( int yearPublished READ рд╡рд░реНрд╖рдкреНрд░рдХрд╛рд╢рд┐рдд WRITE setYearPublished )

рдЬрдирддрд╛ :

Q_INVOKABLE рдлрд╝реЗрдХрдмреБрдХ ( QObject * рдкреИрд░реЗрдВрдЯ = 0 ) : QPersistantObject ( рдкреИрд░реЗрдВрдЯ ) { }

рд╡рд░реНрдЪреБрдЕрд▓ ~ рдлрд╝реЗрдХрдмреБрдХ ( ) { }



void setAuthor ( const QString & a ) { m_author = a ; }

QString рд▓реЗрдЦрдХ ( ) const { рд╡рд╛рдкрд╕реА m_author ; }



void setYearPublished ( int рд╡рд░реНрд╖ ) { m_yearPublished = year ; }

int рд╡рд░реНрд╖рдкреНрд░рдХрд╛рд╢рд┐рдд ( ) const { рд╡рд╛рдкрд╕реА m_yearPublished ; }



рдирд┐рдЬреА :

QString m_author ;

int m_yearPublished ;

} ;



рдлреЗрдХрдмреБрдХ * рдмреА = рдирдпрд╛ рдлреЗрдХрдмреБрдХ ;

рдмреА - > рд╕реЗрдЯрдЕрдереЛрд░ ( "рдореИрдЯ рд░реЛрдЬрд░реНрд╕" ) ;

b - > setYearPublished ( 2009 ) ;



bool objectSaved = b - > save ( ) ;

рд╣рдЯрд╛рдирд╛ b ;

ASSERT_TRUE ( рдЖрдкрддреНрддрд┐рдЬрдирдХ ) ;



b = рдирдпрд╛ рдлреЗрдХрдмреБрдХ ;

рдмреА - > рд╕реЗрдЯрдСрдереЛрд░ ( "рдиреЙрдЯ рдореИрдЯ рд░реЛрдЬрд░реНрд╕" ) ;

b - > setYearPublished ( 1999 ) ;



objectSaved = b - > save ( ) ;

рд╣рдЯрд╛рдирд╛ b ;

ASSERT_TRUE ( рдЖрдкрддреНрддрд┐рдЬрдирдХ ) ;




QsT SQL рдЯреВрд▓реНрд╕ (QST), рд╡рд░реНред 0.4.2a рд░рд┐рд▓реАрдЬрд╝



рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ : рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ Granin (рдореБрдЭреЗ :))

рд╕рд╛рдЗрдЯреЗрдВ : SourceForge , рдордВрдЪ рдкрд░

рд▓рд╛рдЗрд╕реЗрдВрд╕ : GPLv3, LGPLv3

рдирд┐рд░реНрднрд░рддрд╛рдПрдБ : Qt (4.5+)

рд╕рд┐рддрдВрдмрд░ 2009 рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг : рдкреВрд░реНрдг, рдбреЙрдХреНрд╕реАрдЬрди-рдЬрдирд┐рдд, рдХреЗрд╡рд▓ рд░реВрд╕реА рдореЗрдВ

рдЙрджрд╛рд╣рд░рдг : рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдХреЛрдб рдореЗрдВ рд╣реИрдВ; рдореИрдВрдиреЗ рд╕рдВрд╕реНрдХрд░рдг 0.3 рдФрд░ 0.4 - рдкреВрд░реНрдг-рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ TradeDB рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рднреА рдмрдирд╛рдИрдВред



рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп Qt рдХреЗ рддрд╣рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдирд╛ рд╣реИред



рдЕрдкрдиреЗ ORM рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдерд╛ рдХрд┐ рдореБрдЭреЗ рд╣рдмреНрдмрд░ рдорд┐рд▓рд╛, рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдЦ рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рдереА ... рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 0.3 рдерд╛ - рдФрд░ рд░рд┐рд▓реАрдЬ рднреА рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдкреВрд░реНрд╡-рдЕрд▓реНрдлрд╝рд╛ред рдЕрдм рдореИрдВ QST рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдмрд╣реБрдд рдЖрдЧреЗ рдирд┐рдХрд▓ рдЪреБрдХрд╛ рд╣реВрдВ, рдФрд░ 0.5.1 рдкреНрд░реА-рдЕрд▓реНрдлрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИ; рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИред



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



рдЕрд╡рд╕рд░, рд╡реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдлрд╛рдпрджреЗ рднреА рд╣реИрдВред



рд╡рд┐рдкрдХреНрд╖? рдмреЗрд╢рдХ, рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ!





рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрднреА рднреА рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ; рдФрд░ рдПрдХ рдлреНрд░реАрд▓рд╛рдВрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВ рдЗрд╕ рдкрд░ рдПрдХ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рд┐рдЦ тАЛтАЛрд░рд╣рд╛ рд╣реВрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдкрд╛рд╕ QxOrm рдпрд╛ QDjango рдХреЗ рд╕рд╛рде рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдХрд╛рдо рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрдгрд┐рдд рд╣реИрдВрдбрд▓рд░, рдЙрдирдореЗрдВ рднрд░рд╛ рд╣реБрдЖ рджреГрд╢реНрдп - рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ рд▓рдЧрднрдЧ рд╕рднреА рдореБрдЦреНрдп рд╡рд░реНрдЧ (QstAbstractModelHandler) рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред рдореИрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдЬрд░реВрд░реА рд╕рднреА рдЪреАрдЬреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЖрдк рд╣рдореЗрд╢рд╛ рдореЗрд░реА рдУрд░ рдореБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорджрдж рдХрд░реВрдВрдЧрд╛ред рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рдореБрд╢реНрдХрд┐рд▓ рдЙрдкрдХреНрд░рдо рдореЗрдВ рдореЗрд░рд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢реБрднрдХрд╛рдордирд╛рдУрдВ рдХреА рднреА рдЗрдЪреНрдЫрд╛; рдФрд░ рдмреЗрд╣рддрд░ - рдХрд┐рд╕реА рднреА рд╕рдореАрдХреНрд╖рд╛ред рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред



рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдПрдХ рд╕реЗрд▓реЗрдХреНрдЯ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП DFD рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ред


рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ QstField рдлрд╝реАрд▓реНрдб рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝рд┐рдВрдЧ рд╡реНрдпреВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рднреА рдкреНрд░реЗрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ: рдлрд╝реАрд▓реНрдб рдбрд┐рд╕реНрдкреНрд▓реЗрдмрд┐рд▓рд┐рдЯреА, рд╢реАрд░реНрд╖рдХ рдФрд░ рдХреЙрд▓рдо рдЪреМрдбрд╝рд╛рдИред

// personhandler.h

const int PERSONS = 1 ;

const int PERSONS_FULL_NAME = 2 ;



рд╡рд░реНрдЧ PersonsHandler : рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ QstAbstractModelHandler

{

рдирд┐рдЬреА :



QstBatch _selector ( const int & queryNumber ) рдХрд╛рд╕реНрдЯ ;

QstBatch _executor ( const int & queryNumber ) рдХрд╛рд╕реНрдЯ ;

} ;



// personhandler.cpp

QstBatch PersonsHandler :: _selector ( const int & queryNumber ) рдХрд╛рд╕реНрдЯ

{

QstBatch рдмреИрдЪ ;



рдпрджрд┐ ( рдХреНрд╡реЗрд░реАрдирдВрдмрд░ == рд╡реНрдпрдХреНрддрд┐ )

{

рдмреИрдЪред addSource ( "vPersons" ) ;

рдмреИрдЪ << QstField ( рднреВрдорд┐рдХрд╛рдкреНрд░рдгрд╛рд▓реА, "рдЖрдИрдбреА" )

<< QstField ( "рдкрддрд╛_рдЖрдИрдбреА" )



<< QstField ( " рд▓рд╛рд╕реНрдЯрдиреЗрдо " , рдлреАрд▓реНрдбрд╡рд┐рдЬрдп, "рд▓рд╛рд╕реНрдЯ рдиреЗрдо" , 100 )

<< QstField ( "FirstName" , FieldV рдЕрджреГрд╢реНрдп, "рдирд╛рдо" , 100 )

<< QstField ( "ParentName" , FieldV рдЕрджреГрд╢реНрдп, "рдордзреНрдп рдирд╛рдо " , 100 )

<< QstField ( "vcBirthDate" , FieldV рдЕрджреГрд╢реНрдп, "рджрд┐рдирд╛рдВрдХ \ n рдЬрдиреНрдо" , 90 )

<< QstField ( "рдлреЛрди" , рдлреАрд▓реНрдбрд╡рд┐рдЬрдп, "рд╕рдВрдкрд░реНрдХ \ n рдлреЛрди" , 120 )

<< QstField ( "[рдИ-рдореЗрд▓]" , рдлреАрд▓реНрдбрд╡рд┐рд╢реЗрд╖, "рдИ-рдореЗрд▓" , 120 )



<< QstField ( "ID" , рдорд╛рди ( ID_VALUE ) , рдЙрджреНрджреЗрд╢реНрдп )

;

}

рдЕрдиреНрдпрдерд╛

рдЕрдЧрд░ ( рдХреНрд╡реЗрд░реАрдирдВрдмрд░ == PERSONS_FULL_NAME )

{

рдмреИрдЪред addSource ( "vPersons" ) ;

рдЬрддреНрдерд╛



<< QstField ( " FullName " , FieldV рдЕрджреГрд╢реНрдп, "рдкреВрд░реНрдг рдирд╛рдо" , 300 )

<< QstField ( " рд▓рд╛рд╕реНрдЯрдиреЗрдо " , рдлреАрд▓реНрдбрд╡рд┐рдЬрдп, "рд▓рд╛рд╕реНрдЯ рдиреЗрдо" , 100 )

<< QstField ( "FirstName" , FieldV рдЕрджреГрд╢реНрдп, "рдирд╛рдо" , 100 )

<< QstField ( "ParentName" , FieldV рдЕрджреГрд╢реНрдп, "рдордзреНрдп рдирд╛рдо " , 100 )

<< QstField ( "vcBirthDate" , FieldV рдЕрджреГрд╢реНрдп, "рджрд┐рдирд╛рдВрдХ \ n рдЬрдиреНрдо" , 90 )

<< QstField ( "рдлреЛрди" , рдлреАрд▓реНрдбрд╡рд┐рдЬрдп, "рд╕рдВрдкрд░реНрдХ \ n рдлреЛрди" , 120 )

<< QstField ( "[рдИ-рдореЗрд▓]" , рдлреАрд▓реНрдбрд╡рд┐рд╢реЗрд╖, "рдИ-рдореЗрд▓" , 120 )



<< QstField ( "ID" , рдорд╛рди ( ID_VALUE ) , рдЙрджреНрджреЗрд╢реНрдп )





<< QstField ( рднреВрдорд┐рдХрд╛рдкреНрд░рдгрд╛рд▓реА, "рдЖрдИрдбреА" )

<< QstField ( "рдкрддрд╛_рдЖрдИрдбреА" )

;

}

рдЕрдиреНрдпрдерд╛

{

Q_ASSERT ( рдЭреВрдард╛ ) ;

}



рд╡рд╛рдкрд╕реА рдмреИрдЪ ;

}


рдЕрдиреБрдХреВрд▓рди рджреЗрдЦреЗрдВ:


// PersonsHandler _personsHandler;

// QstPlainQueryModel _personsModel; // - PersonsForm рд╡рд░реНрдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред



рд╢реВрдиреНрдп PersonsForm :: loadPersons ( )

{

_personsHandlerред рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВ ( PERSONS, & _personsModel ) ;

_personsHandlerред setTableView ( ui - > tv_PersonsTableView ) ;

}



QVariant PersonsForm :: personID ( ) рдХрд╛рдВрд╕реНрдЯреЗрдмрд▓

{

рд╡рд╛рдкрд╕реА _personsHandlerред keyValueOfView ( ) ;

}


рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:


рд╢реВрдиреНрдп PersonsForm :: loadPersonalDocumentInfo ( )

{

PersonalDocumentsHandler рд╡реЗрдВ ;

рд╡реЗрдВред setValue ( "Person_ID" , personID ( ) ) ;

QVariantMap valMap = рд╡реЗрдВред SelectToMap ( PERSONAL_DOCUMENTS,

QStringList ( )

<< "DocTypeName"

<< "SerialNumber"

<< "рд╕рдВрдЦреНрдпрд╛"

<< "vcIssueDate"

<< "рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" ) ;

ui - > le_DocumentTypeLineEdit - > setText ( valMap [ "DocTypeName" ] .String ( ) ) ;

ui - > le_SerialNumberLineEdit - > setText ( valMap [ " Serialumberumber " ]] toString ( ) ;

ui - > le_NumberLineEdit - > setText ( valMap [ "рд╕рдВрдЦреНрдпрд╛" ] ред toString ( ) ) ;

ui - > le_IssueDateDateEdit - > setDate ( valMap [ "vcIssueDate" ]] toDate ( ) ;

ui - > le_GivenByLineEdit - > setText ( valMap [ "рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ" ] .String ( ) ) ;

}



All Articles