MS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ TASK_RTF_NOTES рдпрд╛ MS SQL рдореЗрдВ RTFред рдЙрд╕реЗ рдХреИрд╕реЗ рд╣рд░рд╛рдПрдВ рдФрд░ SSAS рдореЗрдВ рдХреНрдпреВрдмреНрд╕ рддреИрдпрд╛рд░ рдХрд░реЗрдВ

рдПрдордПрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдЧрдардиреЛрдВ рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд░реНрджрдирд╛рдХ рдХрд╛рдо рд╣реИ - рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдиреЛрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдиреЛрдЯреНрд╕ рдХрд╛рдлреА рдорд╣рддреНрд╡ рдХреЗ рд╣реИрдВ (рдирд┐рдпрдВрддреНрд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╣реА рд╕реВрддреНрд░реАрдХрд░рдг рдХреЗ рд╕рд╛рде), рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рд╣реА рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ, рдиреЛрдЯреНрд╕, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред

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

рдореИрдВ рдореВрд▓ рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рдорд┐рд▓реЗ, рдореБрдЭреЗ рдЗрд╕реЗ рдЦреБрдж рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдмрд╣реБрдд рдЧрд╣рд░рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рд╕рдордЭрджрд╛рд░ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВред


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

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

рдЕрд░реНрдерд╛рддреН, рд╕рдВрднрд╡рддрдГ, рдпреЛрдЬрдирд╛ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
1) рдлрд╝реАрд▓реНрдб рдорд╛рди рдирд┐рдХрд╛рд▓реЗрдВ
2) рдШрди рдЖрдпрд╛рдо рдХреЛ рдорд╛рди рдкрд╛рд╕ рдХрд░реЗрдВ
3) рдПрдордПрд╕ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдПрдХ рд╕реБрдВрджрд░ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП)

рдпрд╛рдиреА рдХреБрдЫ рдЗрд╕ рддрд░рд╣:


рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдпрд╣ рдерд╛ред

рдкрд╣рд▓рд╛ рдЖрд╢реНрдЪрд░реНрдп рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдХреА рдЫрд╡рд┐ рд╣реИ ред рдХреНрдпреЛрдВ? рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕ рддрд┐рдкрд╣рд┐рдпрд╛ рдкрд░ рдХреНрдпреЛрдВ рд░реБрдХрд╛ - рдпрд╣ рдЖрдЧреЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ред рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ (MAX) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд, рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ред
рджреВрд╕рд░рд╛ рдЖрд╢реНрдЪрд░реНрдп, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрд░рдЯреАрдПрдл рд╣реИред рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЪрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрди рдпреБрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдкрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ 2 рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ:

1) RTFTextBox рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
MSDN рдкрд░ рдЯрд┐рдк рд╕рд╣реА рд╣реИ! рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдордПрд╕ рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реИ! рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рд╕рдВрджреЗрд╣ рдореЗрдВ рдвреЛрдВрдЧреА, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдордПрд╕рдкреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ рддрд╛рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЛ рдмреЗрдЪ рд╕рдХреЗрдВ?

2) рд╕рдорд╕реНрдпрд╛рдУрдВ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдмреЗрд╡рдХреВрдл рди рдмрдирд╛рдПрдВ рдФрд░ TASK_NOTES рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╡рд╛рд╣ред рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдФрд░ рдЖрдЧреЗ рдпрд╣ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ TASK_RTF_NOTES рдлрд╝реАрд▓реНрдб рдХреЛ рдЯреНрд░рд┐рдо рдХрд░рдирд╛ рдпрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред

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

рдореБрдЭреЗ рдФрд░ рддрд▓рд╛рд╢ рдХрд░рдиреА рдереАред рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдзрд┐рдХ рдЕрд╡рд╕рд░ рдереЗ - рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдЖрдк рдПрдбрдСрди рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдФрд░ рд╕реЛрдЪрд╛ рдерд╛, рдФрд░ рдЖрд░рдЯреАрдПрдл рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдбрдСрди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕рд▓рд╛рд╣ рдирдВрдмрд░ 1 рд▓рд┐рдпрд╛? рд╣рд╛рдВ, рдпрд╣ рд╕рд╣реА рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрд╕рдХреНрдпреВрдПрд▓ рдиреЗ рдореЗрд░реЗ рдбреАрдПрд▓ рдкрд░ рдЪрдмрд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ "рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдоред рдХреНрд░реЙрд▓ рдХрд░рдирд╛, рдпрд╣ рдХреБрдЯрд┐рд▓ рд╣реИ, рдЦрд░рд╛рдм рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВред" рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ, рдПрдордПрд╕ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд╡реЗ рдбреАрдПрд▓ рдШрдЯрддрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ!

рддрдм рдореБрдЭреЗ рдЕрдВрддрддрдГ рдорд╣рд╕реВрд╕ рд╣реБрдЖ рдХрд┐ рдЖрд░рдЯреАрдПрдл рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИ рдФрд░ рдЖрдЦрд┐рд░рдХрд╛рд░, рдореИрдВ рдЗрд╕ рдЬрдЧрд╣ рдкрд░ рдЖрдпрд╛:
рдУрд▓рд┐рд╡рд░ рджреНрд╡рд╛рд░рд╛ NRTFTRee

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

рдореИрдВ System.Drawing рдХреЗ рдмрд┐рдирд╛ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рд╡рд┐рд╡рд░рдг рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ - рдХрд╛рдлреА рдХрд▓реНрдкрдирд╛ рдФрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдЕрдкреВрд░рдгреАрдп рдирд╣реАрдВ рд╣реИрдВред

SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдЕрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

SELECT TOP 1000 [TASK_UID] ,[TASK_NAME] ,[PROJ_UID] ,convert(varchar(max),[dbo].ConvertFromRTF(convert(varbinary(max),[TASK_RTF_NOTES]))) ,[TASK_NOTES] FROM [ProjectServer2010_Published].[dbo].[MSP_TASKS] where not [TASK_RTF_NOTES] is null 


рдкреНрд░рд╢реНрди "рдХреНрдпреЛрдВ рдЗрддрдиреА рдмрд╛рд░ рдЧреБрдкреНрдд" ??? рдореИрдВ рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ - рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП CLR рдлрд╝рдВрдХреНрд╢рди рдЫрд╡рд┐ рдФрд░ varchar рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ (рдХрдо рд╕реЗ рдХрдо 2005 MS SQL рдореЗрдВ)ред

рд╣рд╛рдВ, рдЕрднреА рднреА рдПрдХ рдЕрддрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИ - рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╣рдорд╛рд░реЗ рдПрдордПрд╕рдкреА рдореЗрдВ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ 1251 рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди 1252 (рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдЗрд╕рд▓рд┐рдП рд░реВрдкрд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдпрдВ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 [SqlFunction(DataAccess = DataAccessKind.Read)] public static SqlBytes ConvertFromRTF(SqlBytes bytes) { if (bytes == null) return null; if (bytes.IsNull) return null; if (bytes.Length == 0) return null; MemoryStream strm = new MemoryStream(bytes.Value); byte[] buff = new byte[4096]; int rd = strm.Read(buff, 0, buff.Length); RtfTree tree = new RtfTree(); string s1 = Encoding.Default.GetString(buff); tree.LoadRtfText(s1); string text = tree.Text; SqlBytes res; if (s1.IndexOf("ansicpg1252") > -1) { res = new SqlBytes(Encoding.GetEncoding("Windows-1252").GetBytes(tree.Text)); } else if (s1.IndexOf("ansicpg1251") > -1) { res = new SqlBytes(Encoding.GetEncoding("Windows-1251").GetBytes(tree.Text)); } else { res = new SqlBytes(Encoding.Default.GetBytes(tree.Text)); } return res; } 


рд╕рдВрджрд░реНрдн:
1. рдореВрд▓ рдХрдирд╡рд░реНрдЯрд░: рдУрд▓рд┐рд╡рд░ рджреНрд╡рд╛рд░рд╛ NRTFTRee
2. рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ : LibRTFToVarchar

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


All Articles