рдЖрджрд░рдгреАрдп рдЖрднрд╛рдордВрдбрд▓ рдХреЛ рд╢реБрдн рджреЛрдкрд╣рд░! рдпрд╣рд╛рдВ рдмрд╣реБрдд рд╣реА рд╕реБрдЦрдж рдФрд░ рдЖрд╕рд╛рди-рдЙрдкрдпреЛрдЧ рд╡рд╛рд▓реА рдЯреАрд╕реАрдПрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬреЛ рдЕрднреА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╖реНрдЯрдкреНрд░рдж рдЧрд▓рддрдлрд╣рдореА рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрднрд╡ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдВрд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рдерд╛: рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЖрд╡реЗрджрди рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдВрд░рдЪрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рджреБрднрд╛рд╖рд┐рдпреЛрдВ, рдбреЗрдЯрд╛рдмреЗрд╕, рдлреНрд░реЗрдорд╡рд░реНрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдРрд╕реА рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдкреАрдПрд▓ рдХреЗ рдЕрдзрд┐рдХ рдореБрдлреНрдд рд╡рд┐рдХрд▓реНрдк рдФрд░ рдХрд┐рд╕реА рднреА рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЖрд╕рд╛рди рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде, рдЖрджрдд рд╕реЗ рдмрд╛рд╣рд░ рдореИрдВ PHP + MySQL рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореБрдЭреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рдереАред
рдЕрдкрдиреЗ рд╕рд╛рдерд┐рдпреЛрдВ рд╕реЗ рдпрд╣ рдкреВрдЫрдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╡реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдбреЗрд▓реНрдлреА / рд╡рд┐рдЬрд╝реБрдЕрд▓ рдмреЗрд╕рд┐рдХ рдореЗрдВ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рд╡реА рдЬреИрд╕реА рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдореИрдВ рднрд╛рд░реА рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛ рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рдЖрдИ: рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╛рдо рдкрд░ рд▓рдЧрднрдЧ рд╣рд░ рджрд┐рди рдЯреАрд╕реАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ! рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд╣реИред
рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЯреАрд╕реАрдПрд▓ рдХреЛрдб рдЪрд╛рд▓реВ рдХрд░рдирд╛
рдЯреАрд╕реАрдПрд▓ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рднрд╛рд╖рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ tcl рдХреЛрдб рд╕реЗ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
TkWrap ред рдпрд╣ рджреБрднрд╛рд╖рд┐рдпрд╛ рдФрд░ рд╣рдорд╛рд░реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдПрдХ рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреИрдХ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
- рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ TkWrap рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ
- рдкрд░рд┐рдгрд╛рдореА рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рддреАрди рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рд╣рдо fullwrap.exe рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рдпрд╣ SQLite рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВ:
fullwrap.exe hello.tcl -o hello.exe
hello.tcl рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реНрд╡-рддреИрдпрд╛рд░ рдлрд╝рд╛рдЗрд▓ рд╣реИ, hello.exe рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдорд┐рд▓реЗрдЧрд╛ред - рдмрдирд╛рдП рдЧрдП hello.exe рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред
рдмреЗрд╢рдХ, рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЕрдм TCL рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
TCL рд╕реЗ SQLite рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
SQLite рдПрдХ рд▓рд╛рдЗрдЯрд╡реЗрдЯ рдПрдореНрдмреЗрдбреЗрдб рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ (рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ рдЙрджреНрдзреГрдд) рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ рдЖрд╕рд╛рдиреА рд╕реЗ SQL рдХреЗ рд╕рднреА рдкреНрд░рд╕рдиреНрдирддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП
рдЯреАрд╕реАрдПрд▓ рд╕реЗ SQLite рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ SQLite рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж рджреВрдВрдЧрд╛:
sqlite3 dbcmd database-name
рдХрдорд╛рдВрдб рд╣рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕-рдирд╛рдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рдпрджрд┐ рдХреЛрдИ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред dbcmd рдХрдиреЗрдХреНрд╢рди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдордиреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, dbcmd рдХрдорд╛рдВрдб рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрд▓ 22 рд╣реИрдВ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп, рд╕реНрдкрд╖реНрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
dbcmd eval sql ?array-name ? ?script?
рдЖрджреЗрд╢ SQL рдХреЛрдб
sql рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░, рдпрджрд┐ рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬрдм рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП), рдЖрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
db1 eval {SELECT * FROM t1 ORDER BY a} values {
parray values
puts ""
}
рддрд╛рд▓рд┐рдХрд╛ t1 рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рдорд╛рдиреЛрдВ рд╕реЗ рдпреБрдХреНрдд рдПрдХ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред
рд╣рдо рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ
рддреЛ, рдПрдХ рдЙрджрд╛рд╣рд░рдг: Tcl / Tk рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдордирдорд╛рдирд╛ sql-request рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
proc do_query {} {
upvar query_res query_res
set ret [query [.querytext get 0.0 end]]
set query_res [lindex $ret 1]
if {[lindex $ret 0] !=0} {
.res configure -fg red ;# ,
} {
.res configure -fg black
}
}
proc query {text} { ;# sql- , (0 ) :
upvar ourdb ourdb
set errcode [catch {ourdb eval $text} ret]
return [list $errcode $ret]
}
sqlite3 ourdb ourdb;#
wm title . " SQLite"
label .query -text " ourdb:" -compound center
text .querytext -width 100 -height 6
button .execute -text " " -command {do_query}
label .restitle -text ":" -compound center
label .res -textvariable query_res -wraplength 200
button .exit -text -command exit
. configure -padx 10 -pady 10 ;#
pack .query .querytext .execute .restitle .res .exit -expand yes ;#
рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд TkWrapper рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

рд╕рдВрджрд░реНрдн
рдЯреАрд╕реАрдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ:
http://tmml.sourceforge.net/doc/tcl/Tk:
http://linux.yaroslavl.ru/docs/prog/tcltk/kk.html рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ