亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? metakit for tcl.mht

?? TCL的數據庫處理支撐庫及一些示例
?? MHT
?? 第 1 頁 / 共 3 頁
字號:
  <I>filename</I> is omitted, a temporary in-memory dataset is created =
(which=20
  cannot use commit, but which you could save to an I/O channel). When a =

  datafile is closed, all pending changes will be written to file, =
unless the=20
  <B>-nocommit</B> option is specified. In that case, only an explicit =
commit=20
  will save changes. To open a file only for reading, use the =
<B>-readonly</B>=20
  option. Datafiles can be opened read-only by any number of readers, or =
by a=20
  single writer (no other combinations are allowed). There is an =
additional=20
  mode, specified by the <B>-extend</B> option: in this case changes are =
always=20
  written at the end of the datafile. This allows modifications by one =
writer=20
  without affecting readers. Readers can adjust to new changes made that =
way by=20
  doing a "rollback" (see below). The term is slightly confusing in this =
case,=20
  since it really is a "roll-forward" ... The <B>-shared</B> option =
causes an=20
  open datafile to be visible in every Tcl interpreter, with thread =
locking as=20
  needed. The datafile is still tied to the current interpreter and will =
be=20
  closed when that interpreter is terminated.=20
  <P>The '<B>mk::file views</B>' command returns a list with the views =
currently=20
  defined in the open datafile associated with <I>tag</I>. You can use =
the=20
  <I>'mk::view layout'</I> command to determine the current structure of =
each=20
  view.=20
  <P>The '<B>mk::file close</B>' command closes the datafile and =
releases all=20
  associated resources. If not opened with <I>-readonly</I> or =
<I>-nocommit</I>,=20
  all pending changes will be saved to file before closing it. A =
<I>tag</I>=20
  loses its special meaning after the corresponding datafile has been =
closed.=20
  <P>The '<B>mk::file commit</B>' command flushes all pending changes to =
disk.=20
  It should not be used on a file opened with the <I>-readonly</I> =
option. The=20
  optional <I>-full</I> argument is only useful when a =
<I>commit-aside</I> is=20
  active (see below). In that case, changes are merged back into the =
main=20
  datafile instead of being saved separately. The aside dataset is =
cleared.=20
  <P>The '<B>mk::file rollback</B>' command cancels all pending changes =
and=20
  reverts the situation to match what was last stored on file. When =
commit-aside=20
  is active, a full rollback cause the state to be rollback to what it =
was=20
  without the aside changes. The aside dataset will be ignored from now =
on.=20
  <P>The '<B>mk::file load</B>' command replaces all views with data =
read from=20
  any Tcl <I>channel</I>. This data must have been generated using =
'<B>mk::file=20
  save</B>'. Changes are made permanent when <I>commit</I> is called =
(explicitly=20
  or implicitly, when a datafile is closed), or they can be reverted by =
calling=20
  <I>rollback</I>.=20
  <P>The '<B>mk::file aside</B>' command starts a special "commit-aside" =
mode,=20
  whereby changes are saved to a second database file. This can be much =
faster=20
  that standard commits, because only changes are saved. In commit- =
aside mode,=20
  the main datafile will not be modified it all, in fact it can be =
opened in=20
  read-only mode.=20
  <P>The '<B>mk::file autocommit</B>' command sets up a database file to =

  automatically issue a commit when the file is closed later. This is =
useful if=20
  the file was initially opened in <I>-nocommit</I> mode, but you now =
want to=20
  change this setting (there is no way to return to <I>-nocommit</I>, =
although a=20
  rollback has a similar effect).=20
  <P>
  <P></P>
  <DT>EXAMPLES
  <DD>Open a datafile (create it if necessary), for read-write access: =
<PRE>    mk::file open db test.dat</PRE>Display the structure of every =
view in=20
  the datafile: <PRE>    foreach v [mk::file views db] {
        puts [mk::view layout db.$v]
    }</PRE>Send all data across a TCP/IP socket connection: <PRE>    set =
chan [socket 127.0.0.1 12345]
    mk::file save db $chan
    close $chan</PRE>The trick to open a datafile stored inside another =
MK=20
  file (e.g. in VFS) is to load/save data via an in-memory database - =
replace=20
  this: <PRE>    mk::file open db test.dat -readonly</PRE>by this: <PRE> =
   mk::file open db
    set fd [open test.dat]
    mk::file load db $fd
    close $fd</PRE>
  <P>
  <P></P>
  <DT><A name=3Dmk_view>
  <HR SIZE=3D1>
  </A>
  <H2>mk::view</H2>
  <DD>
  <H3>View structure and size operations</H3>
  <P></P>
  <DT>SYNOPSIS
  <DD><B>mk::view</B> &nbsp;<B>layout</B> &nbsp;<I>tag.view</I>=20
  &nbsp;<BR><B>mk::view</B> &nbsp;<B>layout</B> &nbsp;<I>tag.view</I>=20
  &nbsp;<I>{structure}</I> &nbsp;<BR><B>mk::view</B> &nbsp;<B>delete</B> =

  &nbsp;<I>tag.view</I> &nbsp;<BR><B>mk::view</B> &nbsp;<B>size</B>=20
  &nbsp;<I>path</I> &nbsp;<BR><B>mk::view</B> &nbsp;<B>size</B>=20
  &nbsp;<I>path</I> &nbsp;<I>size</I> &nbsp;<BR><B>mk::view</B>=20
  &nbsp;<B>info</B> &nbsp;<I>path</I> &nbsp;<BR>
  <P></P>
  <DT>DESCRIPTION
  <DD>The <I>mk::view</I> command is used to query or alter the =
structure of a=20
  <I>view</I> in a datafile (<I>layout</I>, <I>delete</I>), as well as =
the=20
  number of rows it contains (<I>size</I>). The last command =
(<I>info</I>)=20
  returns the list of properties currently defined for a view.=20
  <P>The '<B>mk::view layout</B>' command returns a description of the =
current=20
  datastructure of <I>tag.view</I>. If a structure is specified, the =
current=20
  data is restructured to match that, by adding new properties with a =
default=20
  value, deleting obsolete ones, and reordering them.=20
  <P>Structure definitions consist of a list of properties. Subviews are =

  specified as a sublist of two entries: the name and the list of =
properties in=20
  that subview. Note that subviews add <I>two</I> levels of nesting (see =

  <I>phones</I> in the phonebook example below). The type of a property =
is=20
  specified by appending a suffix to the property name (the default type =
is=20
  string):=20
  <P>
  <UL>
    <DL compact>
      <DT><B>:S</B>=20
      <DD>A <B>string</B> property for storing strings of any size, but =
no null=20
      bytes.=20
      <DT><B>:I</B>=20
      <DD>An <B>integer</B> property for efficiently storing values as =
integers=20
      (1..32 bits).=20
      <DT><B>:L</B>=20
      <DD>An <B>long</B> property for storing values as 64-bit integers. =

      <DT><B>:F</B>=20
      <DD>A <B>float</B> property for storing single-precision floating =
point=20
      values (32 bits).=20
      <DT><B>:D</B>=20
      <DD>A <B>double</B> property for storing double-precision floating =
point=20
      values (64 bits).=20
      <DT><B>:B</B>=20
      <DD>A <B>binary</B> property for untyped binary data (including =
null=20
      bytes).=20
      <DT><B>:M</B>=20
      <DD>Obsolete (now treated as <B>:B</B>). </DD></DL></UL>
  <P>Properties which are not listed int the layout will only remain set =
while=20
  the datafile is open, but not be stored. To make properties persist, =
you must=20
  list them in the layout definition, and do so <I>before</I> setting =
them.=20
  <P>The '<B>mk::view delete</B>' command completely removes a view and =
all the=20
  data it contains from a datafile.=20
  <P>The '<B>mk::view size</B>' command returns the number of rows =
contained in=20
  the view identified as <I>tag.view</I>. If an argument is specified, =
the size=20
  of the view is adjusted accordingly, dropping the highest rows if the =
size is=20
  decreased or adding new empty ones if the size is increased. The =
command=20
  <I>'mk::view size 0'</I> deletes all rows from a view, but keeps the =
view in=20
  the datafile so rows can be added again later (unlike <I>'mk::view=20
  delete'</I>.=20
  <P>The '<B>mk::view info</B>' returns the list of properties which are =

  currently defined for <I>path</I>.<BR>
  <P>Note that the <I>layout</I> and <I>delete</I> sub-commands operate =
only on=20
  top-level views (of the form <I>tag.view</I>), whereas <I>size</I> and =

  <I>info</I> take a <I>path</I> as arguments, which is either a =
top-level view=20
  or a nested subview (of the form=20
  'tag.view!index.subview!subindex...<I>etc</I>...subview').=20
  <P>
  <P></P>
  <DT>EXAMPLES
  <DD>Define a phonebook view which can store more than one phone number =
for=20
  each person: <PRE>    mk::view layout db.book {name address {phones =
{category phone}}}</PRE>Add=20
  a new phonebook entry: <PRE>    mk::row append db.book name "Steve" =
address "Down-under"</PRE>Add two=20
  phone numbers to phone book entry zero, i.e. "Steve": <PRE>    mk::row =
append db.book!0.phones category "home" phone "1234567"
    mk::row append db.book!0.phones category "mobile" phone =
"2345678"</PRE>Restructure=20
  the view in the datafile, adding an integer date field: <PRE>    =
mk::view layout db.book {name address {phones {category phone}} =
date:I}</PRE>Delete=20
  all phonebook entries as well as its definition from the datafile: =
<PRE>    mk::view delete db.book</PRE>
  <P>
  <P></P>
  <DT><A name=3Dmk_cursor>
  <HR SIZE=3D1>
  </A>
  <H2>mk::cursor</H2>
  <DD>
  <H3>Cursor variables for positioning</H3>
  <P></P>
  <DT>SYNOPSIS
  <DD><B>mk::cursor</B> &nbsp;<B>create</B> &nbsp;<I>cursorName</I>=20
  &nbsp;<I>?path?</I> &nbsp;<I>?index?</I> &nbsp;<BR><B>mk::cursor</B>=20
  &nbsp;<B>position</B> &nbsp;<I>cursorName</I> =
&nbsp;<BR><B>mk::cursor</B>=20
  &nbsp;<B>position</B> &nbsp;<I>cursorName</I> &nbsp;<I>0</I>=20
  &nbsp;<BR><B>mk::cursor</B> &nbsp;<B>position</B> =
&nbsp;<I>cursorName</I>=20
  &nbsp;<I>end</I> &nbsp;<BR><B>mk::cursor</B> &nbsp;<B>position</B>=20
  &nbsp;<I>cursorName</I> &nbsp;<I>index</I> &nbsp;<BR><B>mk::cursor</B> =

  &nbsp;<B>incr</B> &nbsp;<I>cursorName</I> &nbsp;<I>?step?</I> =
&nbsp;<BR>
  <P></P>
  <DT>DESCRIPTION
  <DD>The <I>mk::cursor</I> command is used to manipulate <I>'cursor=20
  variables'</I>, which offer an efficient means of iterating and =
repositioning=20
  a <I>'reference to a row in a view'</I>. Though cursors are equivalent =
to=20
  strings of the form <I>somepath!N</I>, it is much more efficient to =
keep a=20
  cursor around in a variable and to adjust it (using the =
<I>position</I>=20
  subcommand), than evaluating a 'somepath!$index' expression every time =
a=20
  cursor is expected.=20
  <P>The '<B>mk::cursor create</B>' command defines (or redefines) a =
cursor=20
  variable. The <I>index</I> argument defaults to zero. This is a =
convenience=20
  function, since <I>'mk::cursor create X somePath N'</I> is equivalent =
to=20
  <I>'set X somePath!N'</I>.=20
  <P>When both <I>path</I> and <I>index</I> arguments are omitted from =
the=20
  <I>'mk::cursor create'</I> command, a cursor pointing to an empty =
temporary=20
  view is created, which can be used as buffer for data not stored on =
file.=20
  <P>The '<B>mk::cursor position</B>' command returns the current =
position of a=20
  cursor, i.e. the 0-based index of the row it is pointing to. If an =
extra=20
  argument is specified, the cursor position will be adjusted =
accordingly. The=20
  '<I>end</I>' pseudo-position is the index of the last row (or -1 if =
the view=20
  is currently empty). Note that if '<I>X</I>' is a cursor equivalent to =

  <I>somePath!N</I>, then <I>'mk::cursor position X M'</I> is equivalent =
to the=20
  far less efficient <I>'set X somePath!M'</I>.=20
  <P>The '<B>mk::cursor incr</B>' command adjusts the current position =
of a=20
  cursor with a specified relative <I>step</I>, which can be positive as =
well as=20
  negative. If <I>step</I> is zero, then this command does nothing. The =
command=20
  <I>'mk::cursor incr X N'</I> is equivalent to <I>'mk::cursor position =
X [expr=20
  {[mk::cursor position X] + N}]'</I>.=20
  <P>
  <P></P>
  <DT><A name=3Dmk_row>
  <HR SIZE=3D1>
  </A>
  <H2>mk::row</H2>
  <DD>
  <H3>Create, insert, and delete rows</H3>
  <P></P>
  <DT>SYNOPSIS
  <DD><B>mk::row</B> &nbsp;<B>create</B> &nbsp;<I>?prop</I> =
&nbsp;<I>value</I>=20
  &nbsp;<I>...?</I> &nbsp;<BR><B>mk::row</B> &nbsp;<B>append</B>=20
  &nbsp;<I>path</I> &nbsp;<I>?prop</I> &nbsp;<I>value</I> =
&nbsp;<I>...?</I>=20
  &nbsp;<BR><B>mk::row</B> &nbsp;<B>insert</B> &nbsp;<I>cursor</I>=20
  &nbsp;<I>count</I> &nbsp;<I>?cursor2?</I> &nbsp;<BR><B>mk::row</B>=20
  &nbsp;<B>delete</B> &nbsp;<I>cursor</I> &nbsp;<I>?count?</I>=20
  &nbsp;<BR><B>mk::row</B> &nbsp;<B>replace</B> &nbsp;<I>cursor</I>=20
  &nbsp;<I>?cursor2?</I> &nbsp;<BR>
  <P></P>
  <DT>DESCRIPTION
  <DD>The <I>mk::row</I> command deals with one or more rows of =
information.=20
  There is a command to allocate a temporary row which is not part of =
any=20
  datafile (<I>create</I>), and the usual set of container operations:=20
  appending, inserting, deleting, and replacing rows.=20
  <P>The '<B>mk::row create</B>' command creates an empty temporary row, =
which=20
  is not stored in any datafile. Each temporary rows starts out without =
any=20
  properties. Setting a property in a row will implicitly add that =
property if=20
  necessary. The return value is a unique <I>cursor</I>, pointing to =
this=20
  temporary row. The row (and all data stored in it) will cease to exist =
when no=20
  cursor references to it remain.=20
  <P>The '<B>mk::row append</B>' command extends the view with a new =
row,=20
  optionally setting some properties in it to the specified values.=20
  <P>The '<B>mk::row insert</B>' command is similar to the <I>append</I> =

  sub-command, inserting the new row in a specified position instead of =
at the=20
  end. The <B>count</B> argument can be used to efficiently insert =
multiple=20
  copies of a row.=20
  <P>The '<B>mk::row delete</B>' command deletes one or more rows from a =
view,=20
  starting at the row pointed to by <I>cursor</I>.=20
  <P>The '<B>mk::row replace</B>' command replaces one row with a copy =
of=20
  another one, or clears its contents if <I>cursor2</I> is not =
specified.=20
  <P>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线免费不卡| 精品国一区二区三区| 久久成人18免费观看| 中文字幕综合网| 精品国产乱码91久久久久久网站| 色综合一区二区三区| 国产乱淫av一区二区三区| 亚洲成人午夜影院| 国产精品传媒入口麻豆| 欧美成人一级视频| 欧美日韩国产bt| 色综合久久久久综合体桃花网| 国产一区二区精品久久99| 日韩中文字幕av电影| 亚洲欧美日韩国产综合在线| 久久久精品综合| 精品伦理精品一区| 欧美日韩你懂的| 欧美亚洲国产一区二区三区va | 美女一区二区视频| 亚洲国产综合色| 自拍偷拍亚洲激情| 中国av一区二区三区| 久久这里只精品最新地址| 91精品国产综合久久香蕉的特点| 欧美自拍偷拍一区| 色婷婷精品大在线视频| 99久久精品免费| 成人永久看片免费视频天堂| 激情综合色综合久久| 性欧美疯狂xxxxbbbb| 成人免费毛片片v| 捆绑调教美女网站视频一区| 亚洲小少妇裸体bbw| 一区二区三区不卡在线观看 | 日韩欧美在线一区二区三区| 欧美日韩一区国产| 欧美性猛交一区二区三区精品| 色欲综合视频天天天| 99久久99久久精品免费观看| 99久久精品情趣| 色综合久久天天| 欧美在线你懂的| 欧美日韩精品久久久| 欧美久久久久久久久久| 欧美一区二区三区在线观看视频 | 日本黄色一区二区| 91黄色激情网站| 欧美色中文字幕| 91精品欧美久久久久久动漫| 日韩一区二区三区观看| 精品第一国产综合精品aⅴ| 久久久亚洲欧洲日产国码αv| 久久女同精品一区二区| 国产精品无人区| 亚洲丝袜精品丝袜在线| 亚洲成人精品在线观看| 美女尤物国产一区| 国产成人综合视频| 91一区一区三区| 欧美视频一区在线| 精品成人在线观看| 国产精品嫩草影院com| 亚洲欧美电影一区二区| 亚洲.国产.中文慕字在线| 麻豆国产精品官网| 成人激情小说网站| 欧美无砖砖区免费| 精品少妇一区二区三区在线播放 | 国产色综合一区| 亚洲男女一区二区三区| 日本伊人色综合网| 国产一区二区三区观看| 91视频91自| 日韩欧美国产高清| 中文av一区特黄| 视频一区二区中文字幕| 成人午夜视频网站| 在线看一区二区| 久久免费午夜影院| 亚洲成a人v欧美综合天堂下载| 久草中文综合在线| 在线精品视频免费观看| 久久婷婷国产综合国色天香| 一区二区三区毛片| 国产精品资源站在线| 91高清视频免费看| 2020国产精品久久精品美国| 一区二区三区美女| 丰满少妇在线播放bd日韩电影| 欧美日韩日本视频| 中文字幕一区二区三区四区不卡| 日本人妖一区二区| 91亚洲精品久久久蜜桃| 精品国产3级a| 五月婷婷久久丁香| 成人免费毛片app| 精品国产免费久久 | 久久精品国产亚洲高清剧情介绍| 9色porny自拍视频一区二区| 欧美videos大乳护士334| 亚洲激情图片一区| 国产99久久久国产精品免费看| 91麻豆精品国产91久久久更新时间 | 久久久久久久国产精品影院| 亚洲国产中文字幕| 97se亚洲国产综合自在线不卡| 久久久久九九视频| 麻豆91在线播放免费| 欧美片网站yy| 亚洲国产一区二区a毛片| 不卡的av网站| 中文字幕第一区| 国产一区二区免费看| 日韩三级中文字幕| 人禽交欧美网站| 欧美精品自拍偷拍| 性久久久久久久久久久久| 色偷偷一区二区三区| 最新中文字幕一区二区三区| 国产成人亚洲精品青草天美| 26uuu久久天堂性欧美| 久久精品国产第一区二区三区| 欧美人与性动xxxx| 日韩精品国产精品| 91精品欧美久久久久久动漫 | 白白色 亚洲乱淫| 精品久久久久久无| 极品美女销魂一区二区三区| 欧美一卡2卡3卡4卡| 亚洲成人先锋电影| 欧美精品久久99久久在免费线 | 丝袜亚洲另类丝袜在线| 日本韩国欧美一区二区三区| 国产欧美日韩卡一| 国产成人8x视频一区二区| 久久久无码精品亚洲日韩按摩| 日本不卡免费在线视频| 欧美日韩国产综合视频在线观看 | 中文字幕一区二区三区在线播放| 国产资源在线一区| 欧美视频一区二区| 亚洲第一搞黄网站| 欧美一区中文字幕| 日本午夜一区二区| 在线播放视频一区| 视频在线观看91| 精品国产亚洲在线| 国产精品一区二区三区四区| 精品电影一区二区| 国产又黄又大久久| 欧美国产精品v| 99免费精品在线观看| 国产精品另类一区| 91丨porny丨国产| 一区二区三区在线免费视频| 欧美中文字幕一区| 五月天亚洲婷婷| 欧美电影免费观看高清完整版| 国产麻豆日韩欧美久久| 欧美极品少妇xxxxⅹ高跟鞋| 大白屁股一区二区视频| 18涩涩午夜精品.www| 91理论电影在线观看| 天天色图综合网| 日韩美女一区二区三区四区| 国产乱码字幕精品高清av| 国产精品久久毛片| 91丨九色丨黑人外教| 日韩欧美区一区二| 欧美日韩亚洲综合一区二区三区| 亚洲一区在线观看网站| 欧美性一二三区| 美女一区二区视频| 国产日韩欧美不卡| 欧美日韩国产首页| 蜜桃传媒麻豆第一区在线观看| 久久久99精品免费观看不卡| 成人av电影免费在线播放| 日韩精品一级二级| 久久久久久亚洲综合影院红桃| www.欧美色图| 亚洲国产成人精品视频| 国产欧美一区二区精品性色超碰| 成人av电影免费在线播放| 午夜精品久久久久| 国产欧美一区二区精品忘忧草| 欧美精品在线观看一区二区| 国产一区二区三区综合| 自拍偷拍欧美精品| 日韩欧美中文字幕制服| 在线观看欧美黄色| 狠狠色丁香九九婷婷综合五月| 亚洲丝袜美腿综合| 69久久99精品久久久久婷婷| 99精品桃花视频在线观看| 另类综合日韩欧美亚洲| 中文字幕亚洲成人| 337p日本欧洲亚洲大胆精品| 色系网站成人免费|