System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 4720a1d31089a608e9f060e3de42d526909bf3e6:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 2a 20 41 44  *********.. * AD
0040: 4f 2e 4e 45 54 20 32 2e 30 20 44 61 74 61 20 50  O.NET 2.0 Data P
0050: 72 6f 76 69 64 65 72 20 66 6f 72 20 53 51 4c 69  rovider for SQLi
0060: 74 65 20 56 65 72 73 69 6f 6e 20 33 2e 58 0d 0a  te Version 3.X..
0070: 20 2a 20 57 72 69 74 74 65 6e 20 62 79 20 52 6f   * Written by Ro
0080: 62 65 72 74 20 53 69 6d 70 73 6f 6e 20 28 72 6f  bert Simpson (ro
0090: 62 65 72 74 40 62 6c 61 63 6b 63 61 73 74 6c 65  bert@blackcastle
00a0: 73 6f 66 74 2e 63 6f 6d 29 0d 0a 20 2a 20 0d 0a  soft.com).. * ..
00b0: 20 2a 20 52 65 6c 65 61 73 65 64 20 74 6f 20 74   * Released to t
00c0: 68 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e  he public domain
00d0: 2c 20 75 73 65 20 61 74 20 79 6f 75 72 20 6f 77  , use at your ow
00e0: 6e 20 72 69 73 6b 21 0d 0a 20 2a 2a 2a 2a 2a 2a  n risk!.. ******
00f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0100: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0110: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0120: 2a 2a 2f 0d 0a 0d 0a 75 73 69 6e 67 20 53 79 73  **/....using Sys
0130: 74 65 6d 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74  tem;..using Syst
0140: 65 6d 2e 44 69 61 67 6e 6f 73 74 69 63 73 3b 0d  em.Diagnostics;.
0150: 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 57 69  .using System.Wi
0160: 6e 64 6f 77 73 2e 46 6f 72 6d 73 3b 0d 0a 0d 0a  ndows.Forms;....
0170: 6e 61 6d 65 73 70 61 63 65 20 74 65 73 74 0d 0a  namespace test..
0180: 7b 0d 0a 20 20 20 20 63 6c 61 73 73 20 50 72 6f  {..    class Pro
0190: 67 72 61 6d 0d 0a 20 20 20 20 7b 0d 0a 20 20 20  gram..    {..   
01a0: 20 20 20 20 20 5b 53 54 41 54 68 72 65 61 64 28       [STAThread(
01b0: 29 5d 0d 0a 20 20 20 20 20 20 20 20 73 74 61 74  )]..        stat
01c0: 69 63 20 76 6f 69 64 20 4d 61 69 6e 28 73 74 72  ic void Main(str
01d0: 69 6e 67 5b 5d 20 61 72 67 73 29 0d 0a 20 20 20  ing[] args)..   
01e0: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
01f0: 20 20 20 20 69 66 20 28 45 6e 76 69 72 6f 6e 6d      if (Environm
0200: 65 6e 74 2e 47 65 74 45 6e 76 69 72 6f 6e 6d 65  ent.GetEnvironme
0210: 6e 74 56 61 72 69 61 62 6c 65 28 22 42 52 45 41  ntVariable("BREA
0220: 4b 22 29 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20  K") != null)..  
0230: 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20            {..   
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e               Con
0250: 73 6f 6c 65 2e 57 72 69 74 65 4c 69 6e 65 28 0d  sole.WriteLine(.
0260: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0270: 20 20 20 20 20 22 41 74 74 61 63 68 20 61 20 64       "Attach a d
0280: 65 62 75 67 67 65 72 20 74 6f 20 70 72 6f 63 65  ebugger to proce
0290: 73 73 20 7b 30 7d 20 61 6e 64 20 70 72 65 73 73  ss {0} and press
02a0: 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74   any key to cont
02b0: 69 6e 75 65 2e 22 2c 0d 0a 20 20 20 20 20 20 20  inue.",..       
02c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 6f               Pro
02d0: 63 65 73 73 2e 47 65 74 43 75 72 72 65 6e 74 50  cess.GetCurrentP
02e0: 72 6f 63 65 73 73 28 29 2e 49 64 29 3b 0d 0a 0d  rocess().Id);...
02f0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0300: 20 74 72 79 0d 0a 20 20 20 20 20 20 20 20 20 20   try..          
0310: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
0320: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e               Con
0330: 73 6f 6c 65 2e 52 65 61 64 4b 65 79 28 74 72 75  sole.ReadKey(tru
0340: 65 29 3b 20 2f 2a 20 74 68 72 6f 77 20 2a 2f 0d  e); /* throw */.
0350: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0360: 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   }..            
0370: 20 20 20 20 63 61 74 63 68 20 28 49 6e 76 61 6c      catch (Inval
0380: 69 64 4f 70 65 72 61 74 69 6f 6e 45 78 63 65 70  idOperationExcep
0390: 74 69 6f 6e 29 20 2f 2f 20 43 6f 6e 73 6f 6c 65  tion) // Console
03a0: 2e 52 65 61 64 4b 65 79 0d 0a 20 20 20 20 20 20  .ReadKey..      
03b0: 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20            {..   
03c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
03d0: 20 2f 2f 20 64 6f 20 6e 6f 74 68 69 6e 67 2e 0d   // do nothing..
03e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
03f0: 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20   }....          
0400: 20 20 20 20 20 20 44 65 62 75 67 67 65 72 2e 42        Debugger.B
0410: 72 65 61 6b 28 29 3b 0d 0a 20 20 20 20 20 20 20  reak();..       
0420: 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20       }....      
0430: 20 20 20 20 20 20 73 74 72 69 6e 67 20 66 69 6c        string fil
0440: 65 4e 61 6d 65 20 3d 20 22 74 65 73 74 2e 64 62  eName = "test.db
0450: 22 3b 20 2f 2f 20 4e 4f 54 45 3a 20 4e 65 77 20  "; // NOTE: New 
0460: 64 65 66 61 75 6c 74 2c 20 77 61 73 20 22 54 65  default, was "Te
0470: 73 74 2e 64 62 33 22 2e 0d 0a 20 20 20 20 20 20  st.db3"...      
0480: 20 20 20 20 20 20 62 6f 6f 6c 20 61 75 74 6f 52        bool autoR
0490: 75 6e 20 3d 20 66 61 6c 73 65 3b 0d 0a 0d 0a 20  un = false;.... 
04a0: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 61             if (a
04b0: 72 67 73 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20  rgs != null)..  
04c0: 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20            {..   
04d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74               int
04e0: 20 6c 65 6e 67 74 68 20 3d 20 61 72 67 73 2e 4c   length = args.L
04f0: 65 6e 67 74 68 3b 0d 0a 0d 0a 20 20 20 20 20 20  ength;....      
0500: 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 69            for (i
0510: 6e 74 20 69 6e 64 65 78 20 3d 20 30 3b 20 69 6e  nt index = 0; in
0520: 64 65 78 20 3c 20 6c 65 6e 67 74 68 3b 20 69 6e  dex < length; in
0530: 64 65 78 2b 2b 29 0d 0a 20 20 20 20 20 20 20 20  dex++)..        
0540: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
0550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73                 s
0560: 74 72 69 6e 67 20 61 72 67 20 3d 20 61 72 67 73  tring arg = args
0570: 5b 69 6e 64 65 78 5d 3b 0d 0a 0d 0a 20 20 20 20  [index];....    
0580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0590: 69 66 20 28 61 72 67 20 21 3d 20 6e 75 6c 6c 29  if (arg != null)
05a0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
05b0: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
05c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
05d0: 20 61 72 67 20 3d 20 61 72 67 2e 54 72 69 6d 53   arg = arg.TrimS
05e0: 74 61 72 74 28 6e 65 77 20 63 68 61 72 5b 5d 20  tart(new char[] 
05f0: 7b 20 27 2d 27 2c 20 27 2f 27 20 7d 29 3b 0d 0a  { '-', '/' });..
0600: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
0610: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 53 74            if (St
0620: 72 69 6e 67 2e 45 71 75 61 6c 73 28 61 72 67 2c  ring.Equals(arg,
0630: 20 22 66 69 6c 65 4e 61 6d 65 22 2c 0d 0a 20 20   "fileName",..  
0640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 74                St
0660: 72 69 6e 67 43 6f 6d 70 61 72 69 73 6f 6e 2e 4f  ringComparison.O
0670: 72 64 69 6e 61 6c 49 67 6e 6f 72 65 43 61 73 65  rdinalIgnoreCase
0680: 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ))..            
0690: 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20              {.. 
06a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
06b0: 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78             index
06c0: 2b 2b 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  ++;....         
06d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
06e0: 20 20 20 69 66 20 28 69 6e 64 65 78 20 3c 20 6c     if (index < l
06f0: 65 6e 67 74 68 29 0d 0a 20 20 20 20 20 20 20 20  ength)..        
0700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0710: 20 20 20 20 20 20 20 20 66 69 6c 65 4e 61 6d 65          fileName
0720: 20 3d 20 61 72 67 73 5b 69 6e 64 65 78 5d 3b 0d   = args[index];.
0730: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0740: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20           }..    
0750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0760: 20 20 20 20 65 6c 73 65 20 69 66 20 28 53 74 72      else if (Str
0770: 69 6e 67 2e 45 71 75 61 6c 73 28 61 72 67 2c 20  ing.Equals(arg, 
0780: 22 61 75 74 6f 52 75 6e 22 2c 0d 0a 20 20 20 20  "autoRun",..    
0790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
07a0: 20 20 20 20 20 20 20 20 20 20 20 20 53 74 72 69              Stri
07b0: 6e 67 43 6f 6d 70 61 72 69 73 6f 6e 2e 4f 72 64  ngComparison.Ord
07c0: 69 6e 61 6c 49 67 6e 6f 72 65 43 61 73 65 29 29  inalIgnoreCase))
07d0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
07e0: 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20            {..   
07f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0800: 20 20 20 20 20 20 20 20 20 61 75 74 6f 52 75 6e           autoRun
0810: 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20   = true;..      
0820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0830: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20    }..           
0840: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20           }..    
0850: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20              }.. 
0860: 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a             }....
0870: 20 20 20 20 20 20 20 20 20 20 20 20 41 70 70 6c              Appl
0880: 69 63 61 74 69 6f 6e 2e 52 75 6e 28 6e 65 77 20  ication.Run(new 
0890: 54 65 73 74 43 61 73 65 73 44 69 61 6c 6f 67 28  TestCasesDialog(
08a0: 66 69 6c 65 4e 61 6d 65 2c 20 61 75 74 6f 52 75  fileName, autoRu
08b0: 6e 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d  n));..        }.
08c0: 0a 20 20 20 20 7d 0d 0a 7d 0d 0a                 .    }..}..