engine/sqlite/sqlite_port.htm
changeset 71 fbd95db6a4e1
parent 69 4a65cc85c4f3
child 72 2e267e7da513
equal deleted inserted replaced
69:4a65cc85c4f3 71:fbd95db6a4e1
     1 <html xmlns:v="urn:schemas-microsoft-com:vml"
       
     2 xmlns:o="urn:schemas-microsoft-com:office:office"
       
     3 xmlns:w="urn:schemas-microsoft-com:office:word"
       
     4 xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
       
     5 xmlns="http://www.w3.org/TR/REC-html40">
       
     6 
       
     7 <head>
       
     8 <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
       
     9 <meta name=ProgId content=Word.Document>
       
    10 <meta name=Generator content="Microsoft Word 12">
       
    11 <meta name=Originator content="Microsoft Word 12">
       
    12 <link rel=File-List href="sqlite_port-Dateien/filelist.xml">
       
    13 <link rel=Edit-Time-Data href="sqlite_port-Dateien/editdata.mso">
       
    14 <!--[if !mso]>
       
    15 <style>
       
    16 v\:* {behavior:url(#default#VML);}
       
    17 o\:* {behavior:url(#default#VML);}
       
    18 w\:* {behavior:url(#default#VML);}
       
    19 .shape {behavior:url(#default#VML);}
       
    20 </style>
       
    21 <![endif]--><!--[if gte mso 9]><xml>
       
    22  <o:DocumentProperties>
       
    23   <o:Author>SieMatic</o:Author>
       
    24   <o:LastAuthor>SieMatic</o:LastAuthor>
       
    25   <o:Revision>2</o:Revision>
       
    26   <o:Created>2008-02-26T10:24:00Z</o:Created>
       
    27   <o:LastSaved>2008-02-26T10:24:00Z</o:LastSaved>
       
    28   <o:Pages>7</o:Pages>
       
    29   <o:Words>2063</o:Words>
       
    30   <o:Characters>13003</o:Characters>
       
    31   <o:Company>SieMatic Möbelwerke GmbH</o:Company>
       
    32   <o:Lines>108</o:Lines>
       
    33   <o:Paragraphs>30</o:Paragraphs>
       
    34   <o:CharactersWithSpaces>15036</o:CharactersWithSpaces>
       
    35   <o:Version>12.00</o:Version>
       
    36  </o:DocumentProperties>
       
    37 </xml><![endif]-->
       
    38 <link rel=themeData href="sqlite_port-Dateien/themedata.thmx">
       
    39 <link rel=colorSchemeMapping href="sqlite_port-Dateien/colorschememapping.xml">
       
    40 <!--[if gte mso 9]><xml>
       
    41  <w:WordDocument>
       
    42   <w:GrammarState>Clean</w:GrammarState>
       
    43   <w:TrackMoves>false</w:TrackMoves>
       
    44   <w:TrackFormatting/>
       
    45   <w:HyphenationZone>21</w:HyphenationZone>
       
    46   <w:PunctuationKerning/>
       
    47   <w:ValidateAgainstSchemas/>
       
    48   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
       
    49   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
       
    50   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
       
    51   <w:DoNotPromoteQF/>
       
    52   <w:LidThemeOther>DE</w:LidThemeOther>
       
    53   <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
       
    54   <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
       
    55   <w:Compatibility>
       
    56    <w:BreakWrappedTables/>
       
    57    <w:SnapToGridInCell/>
       
    58    <w:WrapTextWithPunct/>
       
    59    <w:UseAsianBreakRules/>
       
    60    <w:DontGrowAutofit/>
       
    61    <w:DontUseIndentAsNumberingTabStop/>
       
    62    <w:FELineBreak11/>
       
    63    <w:WW11IndentRules/>
       
    64    <w:DontAutofitConstrainedTables/>
       
    65    <w:AutofitLikeWW11/>
       
    66    <w:HangulWidthLikeWW11/>
       
    67    <w:UseNormalStyleForList/>
       
    68   </w:Compatibility>
       
    69   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
       
    70   <m:mathPr>
       
    71    <m:mathFont m:val="Cambria Math"/>
       
    72    <m:brkBin m:val="before"/>
       
    73    <m:brkBinSub m:val="&#45;-"/>
       
    74    <m:smallFrac m:val="off"/>
       
    75    <m:dispDef/>
       
    76    <m:lMargin m:val="0"/>
       
    77    <m:rMargin m:val="0"/>
       
    78    <m:defJc m:val="centerGroup"/>
       
    79    <m:wrapIndent m:val="1440"/>
       
    80    <m:intLim m:val="subSup"/>
       
    81    <m:naryLim m:val="undOvr"/>
       
    82   </m:mathPr></w:WordDocument>
       
    83 </xml><![endif]--><!--[if gte mso 9]><xml>
       
    84  <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
       
    85   DefSemiHidden="true" DefQFormat="false" DefPriority="99"
       
    86   LatentStyleCount="267">
       
    87   <w:LsdException Locked="false" Priority="0" SemiHidden="false"
       
    88    UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
       
    89   <w:LsdException Locked="false" Priority="9" SemiHidden="false"
       
    90    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
       
    91   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
       
    92   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
       
    93   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
       
    94   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
       
    95   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
       
    96   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
       
    97   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
       
    98   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
       
    99   <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
       
   100   <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
       
   101   <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
       
   102   <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
       
   103   <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
       
   104   <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
       
   105   <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
       
   106   <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
       
   107   <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
       
   108   <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
       
   109   <w:LsdException Locked="false" Priority="10" SemiHidden="false"
       
   110    UnhideWhenUsed="false" QFormat="true" Name="Title"/>
       
   111   <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
       
   112   <w:LsdException Locked="false" Priority="11" SemiHidden="false"
       
   113    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
       
   114   <w:LsdException Locked="false" Priority="22" SemiHidden="false"
       
   115    UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
       
   116   <w:LsdException Locked="false" Priority="20" SemiHidden="false"
       
   117    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
       
   118   <w:LsdException Locked="false" Priority="59" SemiHidden="false"
       
   119    UnhideWhenUsed="false" Name="Table Grid"/>
       
   120   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
       
   121   <w:LsdException Locked="false" Priority="1" SemiHidden="false"
       
   122    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
       
   123   <w:LsdException Locked="false" Priority="60" SemiHidden="false"
       
   124    UnhideWhenUsed="false" Name="Light Shading"/>
       
   125   <w:LsdException Locked="false" Priority="61" SemiHidden="false"
       
   126    UnhideWhenUsed="false" Name="Light List"/>
       
   127   <w:LsdException Locked="false" Priority="62" SemiHidden="false"
       
   128    UnhideWhenUsed="false" Name="Light Grid"/>
       
   129   <w:LsdException Locked="false" Priority="63" SemiHidden="false"
       
   130    UnhideWhenUsed="false" Name="Medium Shading 1"/>
       
   131   <w:LsdException Locked="false" Priority="64" SemiHidden="false"
       
   132    UnhideWhenUsed="false" Name="Medium Shading 2"/>
       
   133   <w:LsdException Locked="false" Priority="65" SemiHidden="false"
       
   134    UnhideWhenUsed="false" Name="Medium List 1"/>
       
   135   <w:LsdException Locked="false" Priority="66" SemiHidden="false"
       
   136    UnhideWhenUsed="false" Name="Medium List 2"/>
       
   137   <w:LsdException Locked="false" Priority="67" SemiHidden="false"
       
   138    UnhideWhenUsed="false" Name="Medium Grid 1"/>
       
   139   <w:LsdException Locked="false" Priority="68" SemiHidden="false"
       
   140    UnhideWhenUsed="false" Name="Medium Grid 2"/>
       
   141   <w:LsdException Locked="false" Priority="69" SemiHidden="false"
       
   142    UnhideWhenUsed="false" Name="Medium Grid 3"/>
       
   143   <w:LsdException Locked="false" Priority="70" SemiHidden="false"
       
   144    UnhideWhenUsed="false" Name="Dark List"/>
       
   145   <w:LsdException Locked="false" Priority="71" SemiHidden="false"
       
   146    UnhideWhenUsed="false" Name="Colorful Shading"/>
       
   147   <w:LsdException Locked="false" Priority="72" SemiHidden="false"
       
   148    UnhideWhenUsed="false" Name="Colorful List"/>
       
   149   <w:LsdException Locked="false" Priority="73" SemiHidden="false"
       
   150    UnhideWhenUsed="false" Name="Colorful Grid"/>
       
   151   <w:LsdException Locked="false" Priority="60" SemiHidden="false"
       
   152    UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
       
   153   <w:LsdException Locked="false" Priority="61" SemiHidden="false"
       
   154    UnhideWhenUsed="false" Name="Light List Accent 1"/>
       
   155   <w:LsdException Locked="false" Priority="62" SemiHidden="false"
       
   156    UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
       
   157   <w:LsdException Locked="false" Priority="63" SemiHidden="false"
       
   158    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
       
   159   <w:LsdException Locked="false" Priority="64" SemiHidden="false"
       
   160    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
       
   161   <w:LsdException Locked="false" Priority="65" SemiHidden="false"
       
   162    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
       
   163   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
       
   164   <w:LsdException Locked="false" Priority="34" SemiHidden="false"
       
   165    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
       
   166   <w:LsdException Locked="false" Priority="29" SemiHidden="false"
       
   167    UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
       
   168   <w:LsdException Locked="false" Priority="30" SemiHidden="false"
       
   169    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
       
   170   <w:LsdException Locked="false" Priority="66" SemiHidden="false"
       
   171    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
       
   172   <w:LsdException Locked="false" Priority="67" SemiHidden="false"
       
   173    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
       
   174   <w:LsdException Locked="false" Priority="68" SemiHidden="false"
       
   175    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
       
   176   <w:LsdException Locked="false" Priority="69" SemiHidden="false"
       
   177    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
       
   178   <w:LsdException Locked="false" Priority="70" SemiHidden="false"
       
   179    UnhideWhenUsed="false" Name="Dark List Accent 1"/>
       
   180   <w:LsdException Locked="false" Priority="71" SemiHidden="false"
       
   181    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
       
   182   <w:LsdException Locked="false" Priority="72" SemiHidden="false"
       
   183    UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
       
   184   <w:LsdException Locked="false" Priority="73" SemiHidden="false"
       
   185    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
       
   186   <w:LsdException Locked="false" Priority="60" SemiHidden="false"
       
   187    UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
       
   188   <w:LsdException Locked="false" Priority="61" SemiHidden="false"
       
   189    UnhideWhenUsed="false" Name="Light List Accent 2"/>
       
   190   <w:LsdException Locked="false" Priority="62" SemiHidden="false"
       
   191    UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
       
   192   <w:LsdException Locked="false" Priority="63" SemiHidden="false"
       
   193    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
       
   194   <w:LsdException Locked="false" Priority="64" SemiHidden="false"
       
   195    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
       
   196   <w:LsdException Locked="false" Priority="65" SemiHidden="false"
       
   197    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
       
   198   <w:LsdException Locked="false" Priority="66" SemiHidden="false"
       
   199    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
       
   200   <w:LsdException Locked="false" Priority="67" SemiHidden="false"
       
   201    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
       
   202   <w:LsdException Locked="false" Priority="68" SemiHidden="false"
       
   203    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
       
   204   <w:LsdException Locked="false" Priority="69" SemiHidden="false"
       
   205    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
       
   206   <w:LsdException Locked="false" Priority="70" SemiHidden="false"
       
   207    UnhideWhenUsed="false" Name="Dark List Accent 2"/>
       
   208   <w:LsdException Locked="false" Priority="71" SemiHidden="false"
       
   209    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
       
   210   <w:LsdException Locked="false" Priority="72" SemiHidden="false"
       
   211    UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
       
   212   <w:LsdException Locked="false" Priority="73" SemiHidden="false"
       
   213    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
       
   214   <w:LsdException Locked="false" Priority="60" SemiHidden="false"
       
   215    UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
       
   216   <w:LsdException Locked="false" Priority="61" SemiHidden="false"
       
   217    UnhideWhenUsed="false" Name="Light List Accent 3"/>
       
   218   <w:LsdException Locked="false" Priority="62" SemiHidden="false"
       
   219    UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
       
   220   <w:LsdException Locked="false" Priority="63" SemiHidden="false"
       
   221    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
       
   222   <w:LsdException Locked="false" Priority="64" SemiHidden="false"
       
   223    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
       
   224   <w:LsdException Locked="false" Priority="65" SemiHidden="false"
       
   225    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
       
   226   <w:LsdException Locked="false" Priority="66" SemiHidden="false"
       
   227    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
       
   228   <w:LsdException Locked="false" Priority="67" SemiHidden="false"
       
   229    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
       
   230   <w:LsdException Locked="false" Priority="68" SemiHidden="false"
       
   231    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
       
   232   <w:LsdException Locked="false" Priority="69" SemiHidden="false"
       
   233    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
       
   234   <w:LsdException Locked="false" Priority="70" SemiHidden="false"
       
   235    UnhideWhenUsed="false" Name="Dark List Accent 3"/>
       
   236   <w:LsdException Locked="false" Priority="71" SemiHidden="false"
       
   237    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
       
   238   <w:LsdException Locked="false" Priority="72" SemiHidden="false"
       
   239    UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
       
   240   <w:LsdException Locked="false" Priority="73" SemiHidden="false"
       
   241    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
       
   242   <w:LsdException Locked="false" Priority="60" SemiHidden="false"
       
   243    UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
       
   244   <w:LsdException Locked="false" Priority="61" SemiHidden="false"
       
   245    UnhideWhenUsed="false" Name="Light List Accent 4"/>
       
   246   <w:LsdException Locked="false" Priority="62" SemiHidden="false"
       
   247    UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
       
   248   <w:LsdException Locked="false" Priority="63" SemiHidden="false"
       
   249    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
       
   250   <w:LsdException Locked="false" Priority="64" SemiHidden="false"
       
   251    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
       
   252   <w:LsdException Locked="false" Priority="65" SemiHidden="false"
       
   253    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
       
   254   <w:LsdException Locked="false" Priority="66" SemiHidden="false"
       
   255    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
       
   256   <w:LsdException Locked="false" Priority="67" SemiHidden="false"
       
   257    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
       
   258   <w:LsdException Locked="false" Priority="68" SemiHidden="false"
       
   259    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
       
   260   <w:LsdException Locked="false" Priority="69" SemiHidden="false"
       
   261    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
       
   262   <w:LsdException Locked="false" Priority="70" SemiHidden="false"
       
   263    UnhideWhenUsed="false" Name="Dark List Accent 4"/>
       
   264   <w:LsdException Locked="false" Priority="71" SemiHidden="false"
       
   265    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
       
   266   <w:LsdException Locked="false" Priority="72" SemiHidden="false"
       
   267    UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
       
   268   <w:LsdException Locked="false" Priority="73" SemiHidden="false"
       
   269    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
       
   270   <w:LsdException Locked="false" Priority="60" SemiHidden="false"
       
   271    UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
       
   272   <w:LsdException Locked="false" Priority="61" SemiHidden="false"
       
   273    UnhideWhenUsed="false" Name="Light List Accent 5"/>
       
   274   <w:LsdException Locked="false" Priority="62" SemiHidden="false"
       
   275    UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
       
   276   <w:LsdException Locked="false" Priority="63" SemiHidden="false"
       
   277    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
       
   278   <w:LsdException Locked="false" Priority="64" SemiHidden="false"
       
   279    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
       
   280   <w:LsdException Locked="false" Priority="65" SemiHidden="false"
       
   281    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
       
   282   <w:LsdException Locked="false" Priority="66" SemiHidden="false"
       
   283    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
       
   284   <w:LsdException Locked="false" Priority="67" SemiHidden="false"
       
   285    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
       
   286   <w:LsdException Locked="false" Priority="68" SemiHidden="false"
       
   287    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
       
   288   <w:LsdException Locked="false" Priority="69" SemiHidden="false"
       
   289    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
       
   290   <w:LsdException Locked="false" Priority="70" SemiHidden="false"
       
   291    UnhideWhenUsed="false" Name="Dark List Accent 5"/>
       
   292   <w:LsdException Locked="false" Priority="71" SemiHidden="false"
       
   293    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
       
   294   <w:LsdException Locked="false" Priority="72" SemiHidden="false"
       
   295    UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
       
   296   <w:LsdException Locked="false" Priority="73" SemiHidden="false"
       
   297    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
       
   298   <w:LsdException Locked="false" Priority="60" SemiHidden="false"
       
   299    UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
       
   300   <w:LsdException Locked="false" Priority="61" SemiHidden="false"
       
   301    UnhideWhenUsed="false" Name="Light List Accent 6"/>
       
   302   <w:LsdException Locked="false" Priority="62" SemiHidden="false"
       
   303    UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
       
   304   <w:LsdException Locked="false" Priority="63" SemiHidden="false"
       
   305    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
       
   306   <w:LsdException Locked="false" Priority="64" SemiHidden="false"
       
   307    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
       
   308   <w:LsdException Locked="false" Priority="65" SemiHidden="false"
       
   309    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
       
   310   <w:LsdException Locked="false" Priority="66" SemiHidden="false"
       
   311    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
       
   312   <w:LsdException Locked="false" Priority="67" SemiHidden="false"
       
   313    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
       
   314   <w:LsdException Locked="false" Priority="68" SemiHidden="false"
       
   315    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
       
   316   <w:LsdException Locked="false" Priority="69" SemiHidden="false"
       
   317    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
       
   318   <w:LsdException Locked="false" Priority="70" SemiHidden="false"
       
   319    UnhideWhenUsed="false" Name="Dark List Accent 6"/>
       
   320   <w:LsdException Locked="false" Priority="71" SemiHidden="false"
       
   321    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
       
   322   <w:LsdException Locked="false" Priority="72" SemiHidden="false"
       
   323    UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
       
   324   <w:LsdException Locked="false" Priority="73" SemiHidden="false"
       
   325    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
       
   326   <w:LsdException Locked="false" Priority="19" SemiHidden="false"
       
   327    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
       
   328   <w:LsdException Locked="false" Priority="21" SemiHidden="false"
       
   329    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
       
   330   <w:LsdException Locked="false" Priority="31" SemiHidden="false"
       
   331    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
       
   332   <w:LsdException Locked="false" Priority="32" SemiHidden="false"
       
   333    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
       
   334   <w:LsdException Locked="false" Priority="33" SemiHidden="false"
       
   335    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
       
   336   <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
       
   337   <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
       
   338  </w:LatentStyles>
       
   339 </xml><![endif]-->
       
   340 <style>
       
   341 <!--
       
   342  /* Font Definitions */
       
   343  @font-face
       
   344 	{font-family:Wingdings;
       
   345 	panose-1:5 0 0 0 0 0 0 0 0 0;
       
   346 	mso-font-charset:2;
       
   347 	mso-generic-font-family:auto;
       
   348 	mso-font-pitch:variable;
       
   349 	mso-font-signature:0 268435456 0 0 -2147483648 0;}
       
   350 @font-face
       
   351 	{font-family:"Cambria Math";
       
   352 	panose-1:2 4 5 3 5 4 6 3 2 4;
       
   353 	mso-font-charset:0;
       
   354 	mso-generic-font-family:roman;
       
   355 	mso-font-pitch:variable;
       
   356 	mso-font-signature:-1610611985 1107304683 0 0 159 0;}
       
   357 @font-face
       
   358 	{font-family:Calibri;
       
   359 	panose-1:2 15 5 2 2 2 4 3 2 4;
       
   360 	mso-font-charset:0;
       
   361 	mso-generic-font-family:swiss;
       
   362 	mso-font-pitch:variable;
       
   363 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
       
   364 @font-face
       
   365 	{font-family:Tahoma;
       
   366 	panose-1:2 11 6 4 3 5 4 4 2 4;
       
   367 	mso-font-charset:0;
       
   368 	mso-generic-font-family:swiss;
       
   369 	mso-font-pitch:variable;
       
   370 	mso-font-signature:1627400839 -2147483648 8 0 66047 0;}
       
   371  /* Style Definitions */
       
   372  p.MsoNormal, li.MsoNormal, div.MsoNormal
       
   373 	{mso-style-unhide:no;
       
   374 	mso-style-qformat:yes;
       
   375 	mso-style-parent:"";
       
   376 	margin-top:0cm;
       
   377 	margin-right:0cm;
       
   378 	margin-bottom:10.0pt;
       
   379 	margin-left:0cm;
       
   380 	line-height:115%;
       
   381 	mso-pagination:widow-orphan;
       
   382 	font-size:11.0pt;
       
   383 	font-family:"Calibri","sans-serif";
       
   384 	mso-fareast-font-family:Calibri;
       
   385 	mso-bidi-font-family:"Times New Roman";
       
   386 	mso-fareast-language:EN-US;}
       
   387 p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
       
   388 	{mso-style-noshow:yes;
       
   389 	mso-style-priority:99;
       
   390 	mso-style-link:"Kommentartext Zchn";
       
   391 	margin-top:0cm;
       
   392 	margin-right:0cm;
       
   393 	margin-bottom:10.0pt;
       
   394 	margin-left:0cm;
       
   395 	line-height:115%;
       
   396 	mso-pagination:widow-orphan;
       
   397 	font-size:10.0pt;
       
   398 	font-family:"Calibri","sans-serif";
       
   399 	mso-fareast-font-family:Calibri;
       
   400 	mso-bidi-font-family:"Times New Roman";
       
   401 	mso-fareast-language:EN-US;}
       
   402 span.MsoCommentReference
       
   403 	{mso-style-noshow:yes;
       
   404 	mso-style-priority:99;
       
   405 	mso-ansi-font-size:8.0pt;
       
   406 	mso-bidi-font-size:8.0pt;}
       
   407 a:link, span.MsoHyperlink
       
   408 	{mso-style-priority:99;
       
   409 	color:blue;
       
   410 	text-decoration:underline;
       
   411 	text-underline:single;}
       
   412 a:visited, span.MsoHyperlinkFollowed
       
   413 	{mso-style-noshow:yes;
       
   414 	mso-style-priority:99;
       
   415 	color:purple;
       
   416 	text-decoration:underline;
       
   417 	text-underline:single;}
       
   418 p
       
   419 	{mso-style-noshow:yes;
       
   420 	mso-style-priority:99;
       
   421 	mso-margin-top-alt:auto;
       
   422 	margin-right:0cm;
       
   423 	mso-margin-bottom-alt:auto;
       
   424 	margin-left:0cm;
       
   425 	mso-pagination:widow-orphan;
       
   426 	font-size:12.0pt;
       
   427 	font-family:"Times New Roman","serif";
       
   428 	mso-fareast-font-family:"Times New Roman";}
       
   429 code
       
   430 	{mso-style-noshow:yes;
       
   431 	mso-style-priority:99;
       
   432 	font-family:"Courier New";
       
   433 	mso-ascii-font-family:"Courier New";
       
   434 	mso-fareast-font-family:"Times New Roman";
       
   435 	mso-hansi-font-family:"Courier New";
       
   436 	mso-bidi-font-family:"Courier New";}
       
   437 pre
       
   438 	{mso-style-priority:99;
       
   439 	mso-style-link:"HTML Vorformatiert Zchn";
       
   440 	margin:0cm;
       
   441 	margin-bottom:.0001pt;
       
   442 	mso-pagination:widow-orphan;
       
   443 	tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
       
   444 	font-size:12.0pt;
       
   445 	font-family:"Courier New";
       
   446 	mso-fareast-font-family:"Times New Roman";
       
   447 	color:black;}
       
   448 p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
       
   449 	{mso-style-noshow:yes;
       
   450 	mso-style-priority:99;
       
   451 	mso-style-parent:Kommentartext;
       
   452 	mso-style-link:"Kommentarthema Zchn";
       
   453 	mso-style-next:Kommentartext;
       
   454 	margin-top:0cm;
       
   455 	margin-right:0cm;
       
   456 	margin-bottom:10.0pt;
       
   457 	margin-left:0cm;
       
   458 	line-height:115%;
       
   459 	mso-pagination:widow-orphan;
       
   460 	font-size:10.0pt;
       
   461 	font-family:"Calibri","sans-serif";
       
   462 	mso-fareast-font-family:Calibri;
       
   463 	mso-bidi-font-family:"Times New Roman";
       
   464 	mso-fareast-language:EN-US;
       
   465 	font-weight:bold;}
       
   466 p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
       
   467 	{mso-style-noshow:yes;
       
   468 	mso-style-priority:99;
       
   469 	mso-style-link:"Sprechblasentext Zchn";
       
   470 	margin:0cm;
       
   471 	margin-bottom:.0001pt;
       
   472 	mso-pagination:widow-orphan;
       
   473 	font-size:8.0pt;
       
   474 	font-family:"Tahoma","sans-serif";
       
   475 	mso-fareast-font-family:Calibri;
       
   476 	mso-fareast-language:EN-US;}
       
   477 p.codeblock, li.codeblock, div.codeblock
       
   478 	{mso-style-name:codeblock;
       
   479 	mso-style-unhide:no;
       
   480 	mso-margin-top-alt:auto;
       
   481 	margin-right:0cm;
       
   482 	mso-margin-bottom-alt:auto;
       
   483 	margin-left:0cm;
       
   484 	mso-pagination:widow-orphan;
       
   485 	font-size:12.0pt;
       
   486 	font-family:"Times New Roman","serif";
       
   487 	mso-fareast-font-family:"Times New Roman";}
       
   488 span.HTMLVorformatiertZchn
       
   489 	{mso-style-name:"HTML Vorformatiert Zchn";
       
   490 	mso-style-priority:99;
       
   491 	mso-style-unhide:no;
       
   492 	mso-style-locked:yes;
       
   493 	mso-style-link:"HTML Vorformatiert";
       
   494 	mso-ansi-font-size:12.0pt;
       
   495 	mso-bidi-font-size:12.0pt;
       
   496 	font-family:"Courier New";
       
   497 	mso-ascii-font-family:"Courier New";
       
   498 	mso-fareast-font-family:"Times New Roman";
       
   499 	mso-hansi-font-family:"Courier New";
       
   500 	mso-bidi-font-family:"Courier New";
       
   501 	color:black;}
       
   502 span.KommentartextZchn
       
   503 	{mso-style-name:"Kommentartext Zchn";
       
   504 	mso-style-noshow:yes;
       
   505 	mso-style-priority:99;
       
   506 	mso-style-unhide:no;
       
   507 	mso-style-locked:yes;
       
   508 	mso-style-link:Kommentartext;
       
   509 	mso-ansi-language:DE;}
       
   510 span.KommentarthemaZchn
       
   511 	{mso-style-name:"Kommentarthema Zchn";
       
   512 	mso-style-noshow:yes;
       
   513 	mso-style-priority:99;
       
   514 	mso-style-unhide:no;
       
   515 	mso-style-locked:yes;
       
   516 	mso-style-parent:"Kommentartext Zchn";
       
   517 	mso-style-link:Kommentarthema;
       
   518 	mso-ansi-language:DE;
       
   519 	font-weight:bold;}
       
   520 span.SprechblasentextZchn
       
   521 	{mso-style-name:"Sprechblasentext Zchn";
       
   522 	mso-style-noshow:yes;
       
   523 	mso-style-priority:99;
       
   524 	mso-style-unhide:no;
       
   525 	mso-style-locked:yes;
       
   526 	mso-style-link:Sprechblasentext;
       
   527 	mso-ansi-font-size:8.0pt;
       
   528 	mso-bidi-font-size:8.0pt;
       
   529 	font-family:"Tahoma","sans-serif";
       
   530 	mso-ascii-font-family:Tahoma;
       
   531 	mso-hansi-font-family:Tahoma;
       
   532 	mso-bidi-font-family:Tahoma;
       
   533 	mso-ansi-language:DE;}
       
   534 span.GramE
       
   535 	{mso-style-name:"";
       
   536 	mso-gram-e:yes;}
       
   537 .MsoChpDefault
       
   538 	{mso-style-type:export-only;
       
   539 	mso-default-props:yes;
       
   540 	mso-ascii-font-family:Calibri;
       
   541 	mso-fareast-font-family:Calibri;
       
   542 	mso-hansi-font-family:Calibri;}
       
   543 @page Section1
       
   544 	{size:595.3pt 841.9pt;
       
   545 	margin:70.85pt 70.85pt 2.0cm 70.85pt;
       
   546 	mso-header-margin:35.4pt;
       
   547 	mso-footer-margin:35.4pt;
       
   548 	mso-paper-source:0;}
       
   549 div.Section1
       
   550 	{page:Section1;}
       
   551  /* List Definitions */
       
   552  @list l0
       
   553 	{mso-list-id:711465342;
       
   554 	mso-list-type:hybrid;
       
   555 	mso-list-template-ids:-398029370 -1506878708 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
       
   556 @list l0:level1
       
   557 	{mso-level-start-at:0;
       
   558 	mso-level-number-format:bullet;
       
   559 	mso-level-text:\F0D8;
       
   560 	mso-level-tab-stop:none;
       
   561 	mso-level-number-position:left;
       
   562 	text-indent:-18.0pt;
       
   563 	font-family:Wingdings;
       
   564 	mso-fareast-font-family:"Times New Roman";
       
   565 	mso-bidi-font-family:"Courier New";}
       
   566 @list l1
       
   567 	{mso-list-id:1152210869;
       
   568 	mso-list-type:hybrid;
       
   569 	mso-list-template-ids:1896245118 489165068 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
       
   570 @list l1:level1
       
   571 	{mso-level-start-at:0;
       
   572 	mso-level-number-format:bullet;
       
   573 	mso-level-text:\F0D8;
       
   574 	mso-level-tab-stop:none;
       
   575 	mso-level-number-position:left;
       
   576 	text-indent:-18.0pt;
       
   577 	font-family:Wingdings;
       
   578 	mso-fareast-font-family:"Times New Roman";
       
   579 	mso-bidi-font-family:"Courier New";}
       
   580 @list l2
       
   581 	{mso-list-id:2131390884;
       
   582 	mso-list-type:hybrid;
       
   583 	mso-list-template-ids:-835441590 1095827004 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
       
   584 @list l2:level1
       
   585 	{mso-level-start-at:0;
       
   586 	mso-level-number-format:bullet;
       
   587 	mso-level-text:\F0D8;
       
   588 	mso-level-tab-stop:none;
       
   589 	mso-level-number-position:left;
       
   590 	margin-left:21.4pt;
       
   591 	text-indent:-18.0pt;
       
   592 	font-family:Wingdings;
       
   593 	mso-fareast-font-family:"Times New Roman";
       
   594 	mso-bidi-font-family:"Courier New";}
       
   595 ol
       
   596 	{margin-bottom:0cm;}
       
   597 ul
       
   598 	{margin-bottom:0cm;}
       
   599 -->
       
   600 </style>
       
   601 <!--[if gte mso 10]>
       
   602 <style>
       
   603  /* Style Definitions */
       
   604  table.MsoNormalTable
       
   605 	{mso-style-name:"Normale Tabelle";
       
   606 	mso-tstyle-rowband-size:0;
       
   607 	mso-tstyle-colband-size:0;
       
   608 	mso-style-noshow:yes;
       
   609 	mso-style-priority:99;
       
   610 	mso-style-qformat:yes;
       
   611 	mso-style-parent:"";
       
   612 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
       
   613 	mso-para-margin:0cm;
       
   614 	mso-para-margin-bottom:.0001pt;
       
   615 	mso-pagination:widow-orphan;
       
   616 	font-size:10.0pt;
       
   617 	font-family:"Calibri","sans-serif";}
       
   618 </style>
       
   619 <![endif]--><!--[if gte mso 9]><xml>
       
   620  <o:shapedefaults v:ext="edit" spidmax="2050"/>
       
   621 </xml><![endif]--><!--[if gte mso 9]><xml>
       
   622  <o:shapelayout v:ext="edit">
       
   623   <o:idmap v:ext="edit" data="1"/>
       
   624   <o:rules v:ext="edit">
       
   625    <o:r id="V:Rule4" type="connector" idref="#_x0000_s1033"/>
       
   626    <o:r id="V:Rule6" type="connector" idref="#_x0000_s1036"/>
       
   627   </o:rules>
       
   628  </o:shapelayout></xml><![endif]-->
       
   629 </head>
       
   630 
       
   631 <body lang=DE link=blue vlink=purple style='tab-interval:35.4pt'>
       
   632 
       
   633 <div class=Section1>
       
   634 
       
   635 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
   636 style='mso-ansi-language:EN-US'>SQLite implementation for Symbian OS with an ADO.NET
       
   637 Provider for Red Five Labs’ .NET Compact Framework 1.0<o:p></o:p></span></b></p>
       
   638 
       
   639 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
   640 style='mso-ansi-language:EN-US'>Converting SQLite to S60<o:p></o:p></span></b></p>
       
   641 
       
   642 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>Red Five Labs’
       
   643 Net60, a .NET Compact Framework Version 1.0, introduces .NET programming to the
       
   644 great family of Symbian S60 smartphones. Now it is possible to run a managed .NET
       
   645 application, written for Windows Mobile, on S60 smartphones. Unfortunately,
       
   646 however, the .NET Compact Framework 1.0 does not provide any form of database
       
   647 support. This is first supported in the .NET Compact Framework 2.0 together
       
   648 with the SQL Server Compact Edition. This SQL Server only runs on Windows
       
   649 Mobile <span class=GramE>devices which means</span> another database system is
       
   650 needed to provide database functionality to Symbian devices. Enter SQLite for
       
   651 S60.<o:p></o:p></span></p>
       
   652 
       
   653 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>SQLite is a
       
   654 popular open source, stand-alone database system that was written in C and is
       
   655 available for Windows, Windows Mobile, OS2 and <span class=GramE>Unix</span> operating
       
   656 systems. It is ACID compliant and supports the SQL-92 standard. The Symbian OS at
       
   657 present does not provide a database system, however in the future Symbian OS
       
   658 Version 9.4 will support a SQLite implementation. <o:p></o:p></span></p>
       
   659 
       
   660 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
   661 style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></b></p>
       
   662 
       
   663 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
   664 style='mso-ansi-language:EN-US'>PIPS for S60 made porting SQLite to Symbian OS
       
   665 possible<o:p></o:p></span></b></p>
       
   666 
       
   667 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>At the
       
   668 beginning of 2007 Symbian published the P.I.P.S. SDK (<a
       
   669 href="http://developer.symbian.com/wiki/display/oe/P.I.P.S.+Home">http://developer.symbian.com/wiki/display/oe/P.I.P.S.+Home</a>
       
   670 ) for the S60 and UIQ platforms. P.I.P.S. is the implementation of the POSIX
       
   671 Interface for Symbian OS that provides C Libraries like STDIO or STDLIB. With
       
   672 the Open C SDK it is possible to port the SQLite library written in ANSI C to
       
   673 Symbian OS. To do such a conversion of an existing ANSI C project knowledge of
       
   674 programming for Symbian OS is needed. A good description of the conversion of
       
   675 SQLite to S60 is the article on Dr.Dobbs (<a
       
   676 href="http://www.ddj.com/mobile/198702204?pgno=2">http://www.ddj.com/mobile/198702204?pgno=2</a>)
       
   677 and describes how such a port of SQLite could be done. By following these
       
   678 instructions, it was easy to create a project that could compile the C files of
       
   679 the SQLite project. <o:p></o:p></span></p>
       
   680 
       
   681 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>Note, the
       
   682 PIPS SDK for S60 must be installed to the PC to compile the SqliteS60 project
       
   683 whilst the PIPS_s60_1_2_SS .SIS must be installed on the device.<o:p></o:p></span></p>
       
   684 
       
   685 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
   686 style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></b></p>
       
   687 
       
   688 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
   689 style='mso-ansi-language:EN-US'>Converting SQLite .C files to .CPP files<o:p></o:p></span></b></p>
       
   690 
       
   691 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>Before the
       
   692 SQLite source could be completely compiled, the file IO operations had to be
       
   693 rewritten. This part of SQLite is not platform independent and uses the native
       
   694 OS operations to open, read and write files.<span style='mso-spacerun:yes'> 
       
   695 </span>The first step was to rewrite the file operations with the STDIO
       
   696 implementation.<span style='mso-spacerun:yes'>  </span>For example the <b
       
   697 style='mso-bidi-font-weight:normal'>OpenDatabase</b> method was modified to use
       
   698 the <b style='mso-bidi-font-weight:normal'>fopen</b> method of POSIX. Unfortunately
       
   699 this did not result in the outcome that was expected. <span
       
   700 style='mso-spacerun:yes'> </span>On the test device this implementation does
       
   701 not run. After analyzing this, it seems to be that the ANSI C file IO methods
       
   702 cause the error. <span style='mso-spacerun:yes'> </span>The Symbian API is an
       
   703 object oriented programming interface, therefore to use the native file IO <span
       
   704 class=GramE>classes,</span> the SQLite source must be converted from .C files
       
   705 to .CPP files. Renaming the files was easy, but after renaming the source files
       
   706 over 500 compiler errors were output. Most of these were language differences
       
   707 between C and C++ and could be solved quickly. After resolving these problems,
       
   708 programming the OS routines with the Symbian file IO classes could begin.<o:p></o:p></span></p>
       
   709 
       
   710 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>For this
       
   711 part a new file was created and added to the SQLiteS60 project
       
   712 (os_symbian.cpp). This file includes all methods that SQLite expects for file
       
   713 IO. The conversion of the existing C files of the SQLite project to CPP files
       
   714 makes the SQLiteS60 project very different from the main source. As a result of
       
   715 this, the implementations for the other OS operations, i.e. for OS2, Windows and
       
   716 Mac, were deleted from this project. SQLite uses a structure to reference the
       
   717 correct OS operations and is implemented in every OS implementation. Due to this
       
   718 practice, only a compiler switch is needed to generate a run-able SQLite library
       
   719 for the specific operating system. As this structure is not used in the S60
       
   720 conversion project, it has also been removed from the code and the Symbian IO
       
   721 methods are directly connected to the OS methods in the file os.cpp.<o:p></o:p></span></p>
       
   722 
       
   723 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
   724 
       
   725 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>A simple
       
   726 example to open or create a file with native Symbian methods is shown in the
       
   727 following code snippet.<o:p></o:p></span></p>
       
   728 
       
   729 <div style='mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt:
       
   730 solid #CCCCCC .75pt;padding:3.0pt 3.0pt 3.0pt 3.0pt;background:#EEEEEE;
       
   731 margin-left:3.4pt;margin-right:3.4pt'><pre style='margin-top:3.4pt;margin-right:
       
   732 0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;line-height:110%;
       
   733 background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0cm;
       
   734 mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span lang=EN-US style='font-size:
       
   735 7.5pt;line-height:110%;mso-ansi-language:EN-US'>RFs fileSession;<o:p></o:p></span></pre><pre
       
   736 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   737 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   738 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   739 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>RFile file;<span style='mso-spacerun:yes'>   </span><o:p></o:p></span></pre><pre
       
   740 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   741 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   742 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   743 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
   744 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   745 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   746 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   747 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
   748 mso-ansi-language:EN-US'>fileSession.Connect(</span></span><span lang=EN-US
       
   749 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>);<o:p></o:p></span></pre><pre
       
   750 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   751 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   752 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   753 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
   754 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   755 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   756 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   757 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>TInt err=<span
       
   758 class=GramE>file.Open(</span>fsSession,fileName,shareMode);<o:p></o:p></span></pre><pre
       
   759 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   760 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   761 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   762 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
   763 mso-ansi-language:EN-US'>if</span></span><span lang=EN-US style='font-size:
       
   764 7.5pt;line-height:110%;mso-ansi-language:EN-US'> (err==KErrNotFound) // file does not exist - create it<o:p></o:p></span></pre><pre
       
   765 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   766 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   767 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   768 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>{<o:p></o:p></span></pre><pre
       
   769 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   770 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   771 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   772 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>    </span><span
       
   773 class=GramE>err=</span>file.Create(fsSession,fileName,shareMode);<o:p></o:p></span></pre><pre
       
   774 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   775 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   776 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   777 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>}<o:p></o:p></span></pre><pre
       
   778 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   779 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   780 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   781 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
   782 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   783 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   784 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   785 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>// do read and write operations<o:p></o:p></span></pre><pre
       
   786 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   787 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   788 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   789 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
   790 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   791 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   792 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   793 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
   794 mso-ansi-language:EN-US'>file.Close(</span></span><span lang=EN-US
       
   795 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>);<o:p></o:p></span></pre><pre
       
   796 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   797 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   798 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   799 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
   800 mso-ansi-language:EN-US'>fileSession.Close(</span></span><span lang=EN-US
       
   801 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>);<o:p></o:p></span></pre></div>
       
   802 
       
   803 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
   804 
       
   805 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The RFs
       
   806 class defines the file server session. Any file operation in controlled by an
       
   807 instance of this class. After this instance is created, the file can be opened
       
   808 over the RFile class. The RFile class contains all file IO operations. By using
       
   809 these two classes to extend the <b style='mso-bidi-font-weight:normal'>sqlite3_file</b>
       
   810 structure, the SQLite file IO operations can use the class instances of RFs and
       
   811 RFile as shown in the struct below.<o:p></o:p></span></p>
       
   812 
       
   813 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
   814 
       
   815 <div style='mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt:
       
   816 solid #CCCCCC .75pt;padding:3.0pt 3.0pt 3.0pt 3.0pt;background:#EEEEEE;
       
   817 margin-left:3.4pt;margin-right:3.4pt'><pre style='margin-top:3.4pt;margin-right:
       
   818 0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;line-height:110%;
       
   819 background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0cm;
       
   820 mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span class=GramE><span lang=EN-US
       
   821 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>struct</span></span><span
       
   822 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'> symbianFile {<o:p></o:p></span></pre><pre
       
   823 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   824 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   825 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   826 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   827 class=GramE>int</span> isOpen;<o:p></o:p></span></pre><pre style='margin-top:
       
   828 3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;
       
   829 line-height:110%;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;
       
   830 padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span lang=EN-US
       
   831 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   832 class=GramE>unsigned</span> char locktype; /* Type of lock currently held on this file */<o:p></o:p></span></pre><pre
       
   833 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   834 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   835 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   836 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   837 class=GramE>short</span> sharedLockByte;<span style='mso-spacerun:yes'>   </span>/* Randomly chosen byte used as a shared lock */<o:p></o:p></span></pre><pre
       
   838 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   839 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   840 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   841 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   842 class=GramE>char</span> fileName[512];<o:p></o:p></span></pre><pre
       
   843 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   844 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   845 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   846 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span>RFs session;<o:p></o:p></span></pre><pre
       
   847 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   848 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   849 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   850 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span>RFile file;<o:p></o:p></span></pre><pre
       
   851 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   852 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   853 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   854 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>};<o:p></o:p></span></pre></div>
       
   855 
       
   856 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
   857 
       
   858 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>Finally all
       
   859 the methods that SQLite needs to handle file operations must be rewritten by
       
   860 using this structure and the RFile methods. The following example shows how to
       
   861 close an open file and the file server session.<o:p></o:p></span></p>
       
   862 
       
   863 <div style='mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt:
       
   864 solid #CCCCCC .75pt;padding:3.0pt 3.0pt 3.0pt 3.0pt;background:#EEEEEE;
       
   865 margin-left:3.4pt;margin-right:3.4pt'><pre style='margin-top:3.4pt;margin-right:
       
   866 0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;line-height:110%;
       
   867 background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0cm;
       
   868 mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span class=GramE><span lang=EN-US
       
   869 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>int</span></span><span
       
   870 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'> Close(sqlite3_file *id){<o:p></o:p></span></pre><pre
       
   871 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   872 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   873 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   874 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   875 class=GramE>int</span> rc, cnt = 0;<o:p></o:p></span></pre><pre
       
   876 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   877 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   878 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   879 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   880 class=GramE>symbianFile</span> *pFile = (symbianFile*)id;<o:p></o:p></span></pre><pre
       
   881 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   882 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   883 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   884 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   885 class=GramE>pFile</span>-&gt;file.Close();<o:p></o:p></span></pre><pre
       
   886 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   887 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   888 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   889 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   890 class=GramE>pFile</span>-&gt;session.Close();<o:p></o:p></span></pre><pre
       
   891 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   892 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   893 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   894 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   895 class=GramE>return</span> SQLITE_OK;<o:p></o:p></span></pre><pre
       
   896 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   897 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   898 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   899 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>}<o:p></o:p></span></pre></div>
       
   900 
       
   901 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
   902 
       
   903 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The other file
       
   904 IO operations are similar to the <b style='mso-bidi-font-weight:normal'>close</b>
       
   905 method. The <b style='mso-bidi-font-weight:normal'>open</b> method of RFile expects
       
   906 a Unicode string that contains the name of the database file. A conversion of
       
   907 the ASCII format to Unicode must be done before calling the <b
       
   908 style='mso-bidi-font-weight:normal'>open</b> method. For such a conversion the <b
       
   909 style='mso-bidi-font-weight:normal'>CCnvCharacterSetConverter</b> class can be
       
   910 used. This class needs the file server session handle and the string to convert
       
   911 to Unicode. The following example shows the converter method used in SQLite.<o:p></o:p></span></p>
       
   912 
       
   913 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
   914 
       
   915 <div style='mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt:
       
   916 solid #CCCCCC .75pt;padding:3.0pt 3.0pt 3.0pt 3.0pt;background:#EEEEEE;
       
   917 margin-left:3.4pt;margin-right:3.4pt'><pre style='margin-top:3.4pt;margin-right:
       
   918 0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;line-height:110%;
       
   919 background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0cm;
       
   920 mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span class=GramE><span lang=EN-US
       
   921 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>void</span></span><span
       
   922 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'> ConvertToUnicode(RFs session, TDes16&amp; aUnicode, const char *str)<o:p></o:p></span></pre><pre
       
   923 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   924 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   925 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   926 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>{<o:p></o:p></span></pre><pre
       
   927 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   928 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   929 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   930 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span>CCnvCharacterSetConverter *converter = CCnvCharacterSetConverter::<span
       
   931 class=GramE>NewL(</span>);<o:p></o:p></span></pre><pre style='margin-top:3.4pt;
       
   932 margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;
       
   933 line-height:110%;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;
       
   934 padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span lang=EN-US
       
   935 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   936 class=GramE>converter</span>-&gt;PrepareToConvertToOrFromL(KCharacterSetIdentifierUtf8, session);<o:p></o:p></span></pre><pre
       
   937 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   938 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   939 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   940 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><o:p></o:p></span></pre><pre
       
   941 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   942 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   943 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   944 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span>TPtrC8 <span
       
   945 class=GramE>ptr(</span>(const unsigned char*)str);<o:p></o:p></span></pre><pre
       
   946 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   947 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   948 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   949 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
   950 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   951 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   952 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   953 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   954 class=GramE>int</span> state = CCnvCharacterSetConverter::KStateDefault;<o:p></o:p></span></pre><pre
       
   955 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   956 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   957 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   958 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>  </span><span
       
   959 class=GramE>converter</span>-&gt;ConvertToUnicode(aUnicode, ptr, state);<o:p></o:p></span></pre><pre
       
   960 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
   961 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
   962 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
   963 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>}<o:p></o:p></span></pre></div>
       
   964 
       
   965 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
   966 
       
   967 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>After
       
   968 rewriting all operations used by SQLite to use the RFile class, in the os_symbian.cpp
       
   969 <span class=GramE>file ,</span> the project can be compiled by the Symbian C
       
   970 compiler (which has been included in the build chain by installing the Carbide
       
   971 plug in for Visual Studio) and a Symbian Library is created that can be used on
       
   972 a S60 device as a database. This library takes the form of a native Symbian DLL
       
   973 called sqlite.dll.<o:p></o:p></span></p>
       
   974 
       
   975 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The
       
   976 database file that the sqlite.dll generates can be used by any other
       
   977 implementation of SQLite. So it will be possible to transfer all stored data
       
   978 from a smart device to a database server in a company network.<o:p></o:p></span></p>
       
   979 
       
   980 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
   981 style='mso-ansi-language:EN-US'>Compiling sqlite.dll from the SQLiteS60 project<o:p></o:p></span></b></p>
       
   982 
       
   983 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>It is
       
   984 possible to compile the sqlite.dll using Visual Studio with the Carbide plugin.
       
   985 <o:p></o:p></span></p>
       
   986 
       
   987 <p class=MsoNormal><span class=GramE><span lang=EN-US style='mso-ansi-language:
       
   988 EN-US'>Another<span style='mso-spacerun:yes'>  </span>easier</span></span><span
       
   989 lang=EN-US style='mso-ansi-language:EN-US'> possibility is to type the
       
   990 following command lines in the ‘group’ directory of the SqliteS60 folder.<span
       
   991 style='mso-spacerun:yes'>  </span><o:p></o:p></span></p>
       
   992 
       
   993 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>To compile
       
   994 for the S60 device (GCCE compiler) and as a release version:<b
       
   995 style='mso-bidi-font-weight:normal'><o:p></o:p></b></span></p>
       
   996 
       
   997 <div style='mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt:
       
   998 solid #CCCCCC .75pt;padding:3.0pt 3.0pt 3.0pt 3.0pt;background:#EEEEEE;
       
   999 margin-left:0cm;margin-right:3.4pt'><pre style='margin-top:3.4pt;margin-right:
       
  1000 0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;line-height:110%;
       
  1001 background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0cm;
       
  1002 mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span lang=EN-US style='font-size:
       
  1003 7.5pt;line-height:110%;mso-ansi-language:EN-US'>&gt; Bldmake bldfiles [enter]<o:p></o:p></span></pre><pre
       
  1004 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1005 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1006 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><b
       
  1007 style='mso-bidi-font-weight:normal'><span lang=EN-US style='font-size:7.5pt;
       
  1008 line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></b></pre><pre
       
  1009 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1010 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1011 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><b
       
  1012 style='mso-bidi-font-weight:normal'><span lang=EN-US style='font-size:7.5pt;
       
  1013 line-height:110%;mso-ansi-language:EN-US'>&gt; <span class=GramE>abld</span> build gcce urel<o:p></o:p></span></b></pre></div>
       
  1014 
       
  1015 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1016 
       
  1017 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>For the
       
  1018 emulator with debug information:<span style='mso-spacerun:yes'>  </span><o:p></o:p></span></p>
       
  1019 
       
  1020 <div style='mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt:
       
  1021 solid #CCCCCC .75pt;padding:3.0pt 3.0pt 3.0pt 3.0pt;background:#EEEEEE;
       
  1022 margin-left:0cm;margin-right:3.4pt'><pre style='margin-top:3.4pt;margin-right:
       
  1023 0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;line-height:110%;
       
  1024 background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0cm;
       
  1025 mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span lang=EN-US style='font-size:
       
  1026 7.5pt;line-height:110%;mso-ansi-language:EN-US'>&gt; Bldmake bldfiles [enter]<o:p></o:p></span></pre><pre
       
  1027 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1028 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1029 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1030 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
  1031 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1032 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1033 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1034 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>&gt; <span
       
  1035 class=GramE>abld</span> build winscw udeb [enter]<o:p></o:p></span></pre></div>
       
  1036 
       
  1037 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
  1038 style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></b></p>
       
  1039 
       
  1040 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
  1041 style='mso-ansi-language:EN-US'>Note:</span></b><span lang=EN-US
       
  1042 style='mso-ansi-language:EN-US'> <span style='mso-spacerun:yes'> </span>No
       
  1043 spaces must be present in the directory path where the SQliteS60 project is
       
  1044 located. Also, the command line console must be run with “Admin” privileges.<o:p></o:p></span></p>
       
  1045 
       
  1046 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
  1047 style='mso-ansi-language:EN-US'><br>
       
  1048 Writing an ADO.NET Provider using Net60 Compact Framework 1.0<o:p></o:p></span></b></p>
       
  1049 
       
  1050 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>After the
       
  1051 successful conversion of the SQLite code to the S60 platform, the development
       
  1052 of an ADO.NET provider for Net60 that uses the SQLite library for Symbian OS can
       
  1053 be started. As there are some existing implementations of an ADO.NET provider
       
  1054 for the .NET Framework, this development did not have to start at the grass
       
  1055 roots level. Mono, for example, contains such an implementation <span
       
  1056 class=GramE>( </span><a href="http://www.mono-project.com">www.mono-project.com</a>
       
  1057 ). This could be used as a base for the ADO.NET provider for Net60.<o:p></o:p></span></p>
       
  1058 
       
  1059 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The .NET Compact
       
  1060 Framework 1.0 only provides the basic interfaces like IDbConnection,
       
  1061 IDbCommand, <span class=GramE>IDbParameter</span> and so on. Other
       
  1062 functionality such as the base classes in the System.Data.Common namespace <span
       
  1063 class=GramE>are</span> not provided. Also the DbDataAdapter base class is not implemented.
       
  1064 So this implementation cannot support DataAdapters, however with these basic
       
  1065 interfaces it is possible to develop an ADO.NET Provider that supports all
       
  1066 basic features of the .NET Framework 1.1 for the desktop.<o:p></o:p></span></p>
       
  1067 
       
  1068 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The
       
  1069 SQLiteS60 project results in a native Symbian DLL, sqlite.dll, which must be
       
  1070 used from within managed .NET code. Net60, and the .NET Compact Framework,
       
  1071 supports interoperability between managed and unmanaged code through a
       
  1072 mechanism called P/Invoke.<o:p></o:p></span></p>
       
  1073 
       
  1074 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The diagram
       
  1075 below shows the interaction between the various components of the solution:<o:p></o:p></span></p>
       
  1076 
       
  1077 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1078 
       
  1079 <p class=MsoNormal><!--[if gte vml 1]><v:shapetype id="_x0000_t202"
       
  1080  coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe">
       
  1081  <v:stroke joinstyle="miter"/>
       
  1082  <v:path gradientshapeok="t" o:connecttype="rect"/>
       
  1083 </v:shapetype><v:shape id="_x0000_s1027" type="#_x0000_t202" style='position:absolute;
       
  1084  margin-left:62.95pt;margin-top:62.25pt;width:285.5pt;height:107.65pt;
       
  1085  z-index:1;mso-width-relative:margin;mso-height-relative:margin'>
       
  1086  <v:textbox style='mso-next-textbox:#_x0000_s1027'>
       
  1087   <![if !mso]>
       
  1088   <table cellpadding=0 cellspacing=0 width="100%">
       
  1089    <tr>
       
  1090     <td><![endif]>
       
  1091     <div>
       
  1092     <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
       
  1093     style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1094     <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
       
  1095     style='font-size:14.0pt;mso-bidi-font-size:11.0pt;line-height:115%;
       
  1096     mso-ansi-language:EN-US'>Net60<o:p></o:p></span></p>
       
  1097     </div>
       
  1098     <![if !mso]></td>
       
  1099    </tr>
       
  1100   </table>
       
  1101   <![endif]></v:textbox>
       
  1102 </v:shape><v:shape id="_x0000_s1030" type="#_x0000_t202" style='position:absolute;
       
  1103  margin-left:215.8pt;margin-top:126.3pt;width:132.85pt;height:43.75pt;
       
  1104  z-index:2;mso-width-relative:margin;mso-height-relative:margin'>
       
  1105  <v:textbox style='mso-next-textbox:#_x0000_s1030'>
       
  1106   <![if !mso]>
       
  1107   <table cellpadding=0 cellspacing=0 width="100%">
       
  1108    <tr>
       
  1109     <td><![endif]>
       
  1110     <div>
       
  1111     <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
       
  1112     style='mso-ansi-language:EN-US'>SQLiteS60.dll<o:p></o:p></span></p>
       
  1113     </div>
       
  1114     <![if !mso]></td>
       
  1115    </tr>
       
  1116   </table>
       
  1117   <![endif]></v:textbox>
       
  1118 </v:shape><v:shape id="_x0000_s1026" type="#_x0000_t202" style='position:absolute;
       
  1119  margin-left:62.95pt;margin-top:173.55pt;width:287.05pt;height:33.45pt;
       
  1120  z-index:3;mso-height-percent:200;mso-height-percent:200;mso-width-relative:margin;
       
  1121  mso-height-relative:margin'>
       
  1122  <v:textbox style='mso-fit-shape-to-text:t'>
       
  1123   <![if !mso]>
       
  1124   <table cellpadding=0 cellspacing=0 width="100%">
       
  1125    <tr>
       
  1126     <td><![endif]>
       
  1127     <div>
       
  1128     <p class=MsoNormal align=center style='text-align:center'>Symbian OS</p>
       
  1129     </div>
       
  1130     <![if !mso]></td>
       
  1131    </tr>
       
  1132   </table>
       
  1133   <![endif]></v:textbox>
       
  1134 </v:shape><v:shape id="_x0000_s1028" type="#_x0000_t202" style='position:absolute;
       
  1135  margin-left:62.95pt;margin-top:24.15pt;width:285.7pt;height:33.45pt;z-index:4;
       
  1136  mso-height-percent:200;mso-height-percent:200;mso-width-relative:margin;
       
  1137  mso-height-relative:margin'>
       
  1138  <v:textbox style='mso-next-textbox:#_x0000_s1028;mso-fit-shape-to-text:t'>
       
  1139   <![if !mso]>
       
  1140   <table cellpadding=0 cellspacing=0 width="100%">
       
  1141    <tr>
       
  1142     <td><![endif]>
       
  1143     <div>
       
  1144     <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
       
  1145     style='mso-ansi-language:EN-US'>.NET CF 1.0 App using SQLite<o:p></o:p></span></p>
       
  1146     </div>
       
  1147     <![if !mso]></td>
       
  1148    </tr>
       
  1149   </table>
       
  1150   <![endif]></v:textbox>
       
  1151 </v:shape><v:shape id="_x0000_s1029" type="#_x0000_t202" style='position:absolute;
       
  1152  margin-left:278.25pt;margin-top:149.15pt;width:70.2pt;height:20.9pt;z-index:5;
       
  1153  mso-width-relative:margin;mso-height-relative:margin'>
       
  1154  <v:textbox>
       
  1155   <![if !mso]>
       
  1156   <table cellpadding=0 cellspacing=0 width="100%">
       
  1157    <tr>
       
  1158     <td><![endif]>
       
  1159     <div>
       
  1160     <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
       
  1161     style='mso-ansi-language:EN-US'>PIPS <o:p></o:p></span></p>
       
  1162     </div>
       
  1163     <![if !mso]></td>
       
  1164    </tr>
       
  1165   </table>
       
  1166   <![endif]></v:textbox>
       
  1167 </v:shape><v:shape id="_x0000_s1031" type="#_x0000_t202" style='position:absolute;
       
  1168  margin-left:246.9pt;margin-top:62.25pt;width:101.75pt;height:38.55pt;
       
  1169  z-index:6;mso-width-relative:margin;mso-height-relative:margin'>
       
  1170  <v:textbox style='mso-next-textbox:#_x0000_s1031'>
       
  1171   <![if !mso]>
       
  1172   <table cellpadding=0 cellspacing=0 width="100%">
       
  1173    <tr>
       
  1174     <td><![endif]>
       
  1175     <div>
       
  1176     <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:
       
  1177     11.0pt;line-height:115%;mso-ansi-language:EN-US'>System.Data.SQLiteClient.dll</span><span
       
  1178     style='font-size:10.0pt;mso-bidi-font-size:11.0pt;line-height:115%'><o:p></o:p></span></p>
       
  1179     </div>
       
  1180     <![if !mso]></td>
       
  1181    </tr>
       
  1182   </table>
       
  1183   <![endif]></v:textbox>
       
  1184 </v:shape><v:shape id="_x0000_s1034" type="#_x0000_t202" style='position:absolute;
       
  1185  margin-left:355.45pt;margin-top:67.25pt;width:118.1pt;height:33.55pt;
       
  1186  z-index:7;mso-width-relative:margin;mso-height-relative:margin' filled="f"
       
  1187  stroked="f">
       
  1188  <v:textbox style='mso-next-textbox:#_x0000_s1034'>
       
  1189   <![if !mso]>
       
  1190   <table cellpadding=0 cellspacing=0 width="100%">
       
  1191    <tr>
       
  1192     <td><![endif]>
       
  1193     <div>
       
  1194     <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
       
  1195     style='font-size:9.0pt;mso-bidi-font-size:11.0pt;line-height:115%;
       
  1196     mso-ansi-language:EN-US'>P/Invoke from managed code to native Symbian DLL</span><span
       
  1197     lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
       
  1198     </div>
       
  1199     <![if !mso]></td>
       
  1200    </tr>
       
  1201   </table>
       
  1202   <![endif]></v:textbox>
       
  1203 </v:shape><v:shape id="_x0000_s1037" type="#_x0000_t202" style='position:absolute;
       
  1204  margin-left:308.15pt;margin-top:98.15pt;width:39.7pt;height:15.65pt;z-index:8'
       
  1205  strokecolor="white">
       
  1206  <v:textbox>
       
  1207   <![if !mso]>
       
  1208   <table cellpadding=0 cellspacing=0 width="100%">
       
  1209    <tr>
       
  1210     <td><![endif]>
       
  1211     <div>
       
  1212     <p class=MsoNormal><o:p>&nbsp;</o:p></p>
       
  1213     </div>
       
  1214     <![if !mso]></td>
       
  1215    </tr>
       
  1216   </table>
       
  1217   <![endif]></v:textbox>
       
  1218 </v:shape><v:shapetype id="_x0000_t32" coordsize="21600,21600" o:spt="32"
       
  1219  o:oned="t" path="m,l21600,21600e" filled="f">
       
  1220  <v:path arrowok="t" fillok="f" o:connecttype="none"/>
       
  1221  <o:lock v:ext="edit" shapetype="t"/>
       
  1222 </v:shapetype><v:shape id="_x0000_s1036" type="#_x0000_t32" style='position:absolute;
       
  1223  margin-left:307.2pt;margin-top:100.9pt;width:0;height:25.35pt;z-index:9'
       
  1224  o:connectortype="straight"/><v:shape id="_x0000_s1033" type="#_x0000_t32"
       
  1225  style='position:absolute;margin-left:335.7pt;margin-top:90.2pt;width:25.95pt;
       
  1226  height:23.6pt;flip:x;z-index:10' o:connectortype="straight">
       
  1227  <v:stroke dashstyle="1 1" endarrow="block" endcap="round"/>
       
  1228 </v:shape><![endif]--><![if !vml]><span style='mso-ignore:vglayout'>
       
  1229 
       
  1230 <table cellpadding=0 cellspacing=0 align=left>
       
  1231  <tr>
       
  1232   <td width=83 height=31></td>
       
  1233  </tr>
       
  1234  <tr>
       
  1235   <td></td>
       
  1236   <td><img width=552 height=250 src="sqlite_port-Dateien/image001.gif" v:shapes="_x0000_s1027 _x0000_s1030 _x0000_s1026 _x0000_s1028 _x0000_s1029 _x0000_s1031 _x0000_s1034 _x0000_s1037 _x0000_s1036 _x0000_s1033"></td>
       
  1237  </tr>
       
  1238 </table>
       
  1239 
       
  1240 </span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1241 
       
  1242 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1243 
       
  1244 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1245 
       
  1246 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1247 
       
  1248 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1249 
       
  1250 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1251 
       
  1252 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1253 
       
  1254 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1255 
       
  1256 <br style='mso-ignore:vglayout' clear=ALL>
       
  1257 
       
  1258 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The native SQLite
       
  1259 methods, such as <b style='mso-bidi-font-weight:normal'>libversion</b>, <b
       
  1260 style='mso-bidi-font-weight:normal'>open</b> etc., are called using the
       
  1261 P/Invoke mechanism in the .NET code. To do this, the entry point of the corresponding
       
  1262 method in the SQLite library must be known. Symbian has a specific entry point
       
  1263 model. All methods are exported from a library by ordinal numbers instead of
       
  1264 method names. The relation of method name and export number can be found in the
       
  1265 generated .DEF file of the SQLite.dll or by using a dump tool.<o:p></o:p></span></p>
       
  1266 
       
  1267 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The
       
  1268 following example shows how a native SQLite method is defined in .NET. The <b
       
  1269 style='mso-bidi-font-weight:normal'>DLLImort</b> attribute defines the library
       
  1270 name and the entry points were the method is located in the library. The CallingConvention
       
  1271 defines the type of data exchange between the unmanaged SQLite and the managed
       
  1272 .NET code. <o:p></o:p></span></p>
       
  1273 
       
  1274 <div style='mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt:
       
  1275 solid #CCCCCC .75pt;padding:3.0pt 3.0pt 3.0pt 3.0pt;background:#EEEEEE;
       
  1276 margin-left:3.4pt;margin-right:3.4pt'><pre style='margin-top:3.4pt;margin-right:
       
  1277 0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;line-height:110%;
       
  1278 background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0cm;
       
  1279 mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span lang=EN-US style='font-size:
       
  1280 7.5pt;line-height:110%;mso-ansi-language:EN-US'>[<span class=GramE>DllImport(</span>&quot;sqlite.dll&quot;, EntryPoint = &quot;#86&quot;, CallingConvention = _Convention)]<o:p></o:p></span></pre><pre
       
  1281 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1282 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1283 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1284 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
  1285 mso-ansi-language:EN-US'>public</span></span><span lang=EN-US style='font-size:
       
  1286 7.5pt;line-height:110%;mso-ansi-language:EN-US'> static extern SQLiteCode sqlite3_open(IntPtr filename, out IntPtr db);<o:p></o:p></span></pre></div>
       
  1287 
       
  1288 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1289 
       
  1290 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>Based on
       
  1291 the existing implementations of SQLite for .NET it was easy to develop an
       
  1292 ADO.NET Provider that runs on the Compact Framework. To test the behavior of a
       
  1293 .NET application, this implementation provides a P/Invoke call for each <b
       
  1294 style='mso-bidi-font-weight:normal'>sqlite3_</b> method call to the Symbian
       
  1295 version contained in the sqlite.dll. <span class=GramE>These</span> P/Invokes
       
  1296 are performed in the SymbianMethods.cs file in the managed System.Data.SQLiteClient.dll
       
  1297 extension class.<o:p></o:p></span></p>
       
  1298 
       
  1299 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>Interestingly,
       
  1300 all applications are also executable on the smartphone device emulator. To
       
  1301 change between the emulator and device, only the emulator flag in the
       
  1302 connection string must be set to true or false. For the emulator the Windows
       
  1303 version of SQLite is required <span class=GramE>( </span><a
       
  1304 href="http://www.sqlite.org">www.sqlite.org</a> ), the emulator flag links the
       
  1305 P/Invoke call to that library.<o:p></o:p></span></p>
       
  1306 
       
  1307 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
  1308 style='mso-ansi-language:EN-US'>Deploying SQLiteS60 to the device<o:p></o:p></span></b></p>
       
  1309 
       
  1310 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>In order to
       
  1311 deploy the SQLite database to device, the sqlite.dll must be deployed to the \sys\bin
       
  1312 directory and the System.Data.SQLiteClient.dll to the Red Five Labs GAC
       
  1313 repository on the device which is \Resource\RedFiveLabs\Gac. The sqlite.pkg is
       
  1314 used together with the Symbian makesis.exe to create an installable SQLite.SIS
       
  1315 file which deploys these two libraries to their respective destinations. If the
       
  1316 sqlite.dll and System.Data.SQLiteClient.dll are placed in the same directory as
       
  1317 the sqlite.pcg file, an example command line to generate the Sqlite.sis is <o:p></o:p></span></p>
       
  1318 
       
  1319 <div style='mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt:
       
  1320 solid #CCCCCC .75pt;padding:3.0pt 3.0pt 3.0pt 3.0pt;background:#EEEEEE;
       
  1321 margin-left:3.4pt;margin-right:3.4pt'><pre style='margin-top:3.4pt;margin-right:
       
  1322 0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;line-height:110%;
       
  1323 background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0cm;
       
  1324 mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span lang=EN-US style='font-size:
       
  1325 7.5pt;line-height:110%;mso-ansi-language:EN-US'>C:\temp\sis&gt;makesis sqlite.pkg<o:p></o:p></span></pre></div>
       
  1326 
       
  1327 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
  1328 style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></b></p>
       
  1329 
       
  1330 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
  1331 style='mso-ansi-language:EN-US'>Using SQLite<o:p></o:p></span></b></p>
       
  1332 
       
  1333 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The
       
  1334 implementation for Compact Framework 1.0 contains the SQLiteConnection class
       
  1335 that handles the connection to the sqlite database and creates new
       
  1336 SQLiteCommand instances. With these instances database queries can be sent to
       
  1337 and the results received from the database. As a result a SQLiteDataReader set instance
       
  1338 can be returned. This class provides the functionality to step through the rows
       
  1339 of the result sets. Transactional processing can be performed by using the
       
  1340 SQLiteTransaction class. An instance for that class can be created over the
       
  1341 SQLiteConnection instance. Any SQLiteCommand can contain one or more SQL statements.
       
  1342 These statements are handled in the SQLiteStatement class. Each statement is
       
  1343 represented by an instance of that class. This class calls the native SQLite
       
  1344 methods to perform the database operations.<o:p></o:p></span></p>
       
  1345 
       
  1346 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1347 
       
  1348 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The
       
  1349 following example shows how to open a database by using the SQLiteConnection
       
  1350 class.<o:p></o:p></span></p>
       
  1351 
       
  1352 <div style='mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt:
       
  1353 solid #CCCCCC .75pt;padding:3.0pt 3.0pt 3.0pt 3.0pt;background:#EEEEEE;
       
  1354 margin-left:3.4pt;margin-right:3.4pt'><pre style='margin-top:3.4pt;margin-right:
       
  1355 0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;line-height:110%;
       
  1356 background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0cm;
       
  1357 mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span lang=EN-US style='font-size:
       
  1358 7.5pt;line-height:110%;mso-ansi-language:EN-US'>SQLiteConnection _Connection = new <span
       
  1359 class=GramE>SQLiteConnection(</span>&quot;Data Source=test1.db;NewDatabase=True;<o:p></o:p></span></pre><pre
       
  1360 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1361 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1362 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1363 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span
       
  1364 style='mso-tab-count:5'>                                                  </span>Synchronous=Off<span
       
  1365 class=GramE>;Encoding</span>=UTF8;Emulator=true&quot;);<o:p></o:p></span></pre><pre
       
  1366 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1367 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1368 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1369 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>_<span
       
  1370 class=GramE>Connection.Open(</span>);<o:p></o:p></span></pre><pre
       
  1371 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1372 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1373 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1374 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
  1375 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1376 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1377 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1378 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>SQLiteCommand cmd = _<span
       
  1379 class=GramE>Connection.CreateCommand(</span>);<o:p></o:p></span></pre><pre
       
  1380 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1381 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1382 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1383 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>cmd.CommandText = &quot;select id, orderid, article from orderdetails where OrderId = @OrderId&quot;;<o:p></o:p></span></pre><pre
       
  1384 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1385 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1386 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1387 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
  1388 mso-ansi-language:EN-US'>cmd.Parameters.Add(</span></span><span lang=EN-US
       
  1389 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>&quot;@OrderId&quot;, DbType.Int32).Value = orderId;<o:p></o:p></span></pre><pre
       
  1390 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1391 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1392 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1393 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
  1394 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1395 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1396 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1397 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>DataTable table = new <span
       
  1398 class=GramE>DataTable(</span>);<o:p></o:p></span></pre><pre style='margin-top:
       
  1399 3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;text-align:justify;
       
  1400 line-height:110%;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;
       
  1401 padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span lang=EN-US
       
  1402 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
  1403 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1404 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1405 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1406 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
  1407 mso-ansi-language:EN-US'>table.Columns.Add(</span></span><span lang=EN-US
       
  1408 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>&quot;Id&quot;);<o:p></o:p></span></pre><pre
       
  1409 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1410 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1411 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1412 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
  1413 mso-ansi-language:EN-US'>table.Columns.Add(</span></span><span lang=EN-US
       
  1414 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>&quot;OrderId&quot;);<o:p></o:p></span></pre><pre
       
  1415 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1416 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1417 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1418 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
  1419 mso-ansi-language:EN-US'>table.Columns.Add(</span></span><span lang=EN-US
       
  1420 style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>&quot;Article&quot;);<o:p></o:p></span></pre><pre
       
  1421 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1422 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1423 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1424 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
  1425 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1426 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1427 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1428 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>SQLiteDataReader reader = <span
       
  1429 class=GramE>cmd.ExecuteReader(</span>);<o:p></o:p></span></pre><pre
       
  1430 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1431 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1432 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1433 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
  1434 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1435 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1436 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1437 class=GramE><span lang=EN-US style='font-size:7.5pt;line-height:110%;
       
  1438 mso-ansi-language:EN-US'>while</span></span><span lang=EN-US style='font-size:
       
  1439 7.5pt;line-height:110%;mso-ansi-language:EN-US'> (reader.Read())<o:p></o:p></span></pre><pre
       
  1440 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1441 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1442 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1443 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>{<o:p></o:p></span></pre><pre
       
  1444 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1445 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1446 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1447 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>    </span>DataRow row = <span
       
  1448 class=GramE>table.NewRow(</span>);<o:p></o:p></span></pre><pre
       
  1449 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1450 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1451 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1452 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>    </span><span
       
  1453 class=GramE>row[</span>&quot;Id&quot;] = reader.GetInt32(0);<o:p></o:p></span></pre><pre
       
  1454 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1455 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1456 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1457 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>    </span><span
       
  1458 class=GramE>row[</span>&quot;OrderId&quot;] = reader.GetInt32(1);<o:p></o:p></span></pre><pre
       
  1459 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1460 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1461 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1462 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>    </span><span
       
  1463 class=GramE>row[</span>&quot;Article&quot;] = reader.GetString(2);<o:p></o:p></span></pre><pre
       
  1464 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1465 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1466 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1467 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>    </span><span
       
  1468 class=GramE>table.Rows.Add(</span>row);<o:p></o:p></span></pre><pre
       
  1469 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1470 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1471 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1472 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>}<o:p></o:p></span></pre><pre
       
  1473 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1474 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1475 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1476 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></pre><pre
       
  1477 style='margin-top:3.4pt;margin-right:0cm;margin-bottom:3.4pt;margin-left:0cm;
       
  1478 text-align:justify;line-height:110%;background:#EEEEEE;border:none;mso-border-alt:
       
  1479 solid #CCCCCC .75pt;padding:0cm;mso-padding-alt:3.0pt 3.0pt 3.0pt 3.0pt'><span
       
  1480 lang=EN-US style='font-size:7.5pt;line-height:110%;mso-ansi-language:EN-US'>dataGridView.DataSource = table;<o:p></o:p></span></pre></div>
       
  1481 
       
  1482 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1483 
       
  1484 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>The
       
  1485 SQLiteCommand instance contains a select statement that loads the orders with
       
  1486 the specified OrderId. The result set of this query is then filled in a data
       
  1487 table that is databinded to <span class=GramE>an</span> dataGridView that
       
  1488 displays the result. An example application is provided in the form of
       
  1489 SqlMobileTest project.<o:p></o:p></span></p>
       
  1490 
       
  1491 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1492 
       
  1493 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
  1494 style='mso-ansi-language:EN-US'>Conclusion<o:p></o:p></span></b></p>
       
  1495 
       
  1496 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>With this
       
  1497 conversion of SQLite, it is now possible to create .NET applications with database
       
  1498 support for the great family of Symbian S60 smartphones. With the upcoming release
       
  1499 of version 9.4 the Symbian OS provides an implementation of SQLite but this
       
  1500 version is not released yet and only new devices will get this database
       
  1501 support. With this conversion all S60 3<sup>rd</sup> Edition devices will be able
       
  1502 to use SQLite. Together with the Red Five Labs Net60 implementation of the .NET
       
  1503 Compact Framework it is possible to run .NET applications on Symbian OS. Together
       
  1504 with the ADO.NET provider for this SQLite implementation these applications can
       
  1505 use database functionality like any other application on a personal computer.<o:p></o:p></span></p>
       
  1506 
       
  1507 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1508 
       
  1509 <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span lang=EN-US
       
  1510 style='mso-ansi-language:EN-US'>Tools Used for this project<o:p></o:p></span></b></p>
       
  1511 
       
  1512 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>Microsoft
       
  1513 Visual Studio 2005 together with the Carbide.vs Plugin (http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide/<span
       
  1514 class=GramE>index.html )</span> were used in this project.<o:p></o:p></span></p>
       
  1515 
       
  1516 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><span
       
  1517 style='mso-spacerun:yes'> </span>Additionally the S60 SDK and the Symbian PIPS
       
  1518 SDK are required to compile the project. With the Carbide plug in it is
       
  1519 possible to develop native Symbian applications in the Visual Studio IDE and to
       
  1520 debug on the S60 emulator. To convert a S60 project (f.e. a BLD or MMP file) to
       
  1521 a Visual Studio project, the Import Wizard of the carbide plugin could be used.
       
  1522 It is located under the File menu. The user only has to select the s60 project
       
  1523 and to assign an S60 SDK (f.e. maintenance release or FP1/FP2). The rest of the
       
  1524 transformation does the wizard. So it is easy to convert existing projects to
       
  1525 use the carbide plugin.<o:p></o:p></span></p>
       
  1526 
       
  1527 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1528 
       
  1529 <p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
       
  1530 
       
  1531 </div>
       
  1532 
       
  1533 </body>
       
  1534 
       
  1535 </html>