System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 83c311b615d606ed4b0b72ce2f60e3d712d3f8e7:


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 0a 20 2a 20 41 44 4f  *********. * ADO
0040: 2e 4e 45 54 20 32 2e 30 20 44 61 74 61 20 50 72  .NET 2.0 Data Pr
0050: 6f 76 69 64 65 72 20 66 6f 72 20 53 51 4c 69 74  ovider for SQLit
0060: 65 20 56 65 72 73 69 6f 6e 20 33 2e 58 0a 20 2a  e Version 3.X. *
0070: 20 57 72 69 74 74 65 6e 20 62 79 20 52 6f 62 65   Written by Robe
0080: 72 74 20 53 69 6d 70 73 6f 6e 20 28 72 6f 62 65  rt Simpson (robe
0090: 72 74 40 62 6c 61 63 6b 63 61 73 74 6c 65 73 6f  rt@blackcastleso
00a0: 66 74 2e 63 6f 6d 29 0a 20 2a 20 0a 20 2a 20 52  ft.com). * . * R
00b0: 65 6c 65 61 73 65 64 20 74 6f 20 74 68 65 20 70  eleased to the p
00c0: 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2c 20 75 73  ublic domain, us
00d0: 65 20 61 74 20 79 6f 75 72 20 6f 77 6e 20 72 69  e at your own ri
00e0: 73 6b 21 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  sk!. ***********
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 2f 0a 0a  *************/..
0120: 6e 61 6d 65 73 70 61 63 65 20 53 51 4c 69 74 65  namespace SQLite
0130: 2e 44 65 73 69 67 6e 65 72 0a 7b 0a 20 20 75 73  .Designer.{.  us
0140: 69 6e 67 20 53 79 73 74 65 6d 3b 0a 20 20 75 73  ing System;.  us
0150: 69 6e 67 20 53 79 73 74 65 6d 2e 43 6f 6c 6c 65  ing System.Colle
0160: 63 74 69 6f 6e 73 2e 47 65 6e 65 72 69 63 3b 0a  ctions.Generic;.
0170: 20 20 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 43    using System.C
0180: 6f 6d 70 6f 6e 65 6e 74 4d 6f 64 65 6c 3b 0a 20  omponentModel;. 
0190: 20 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 44 61   using System.Da
01a0: 74 61 3b 0a 20 20 75 73 69 6e 67 20 53 79 73 74  ta;.  using Syst
01b0: 65 6d 2e 44 72 61 77 69 6e 67 3b 0a 20 20 75 73  em.Drawing;.  us
01c0: 69 6e 67 20 53 79 73 74 65 6d 2e 54 65 78 74 3b  ing System.Text;
01d0: 0a 20 20 75 73 69 6e 67 20 53 79 73 74 65 6d 2e  .  using System.
01e0: 57 69 6e 64 6f 77 73 2e 46 6f 72 6d 73 3b 0a 20  Windows.Forms;. 
01f0: 20 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 47 6c   using System.Gl
0200: 6f 62 61 6c 69 7a 61 74 69 6f 6e 3b 0a 20 20 75  obalization;.  u
0210: 73 69 6e 67 20 53 51 4c 69 74 65 2e 44 65 73 69  sing SQLite.Desi
0220: 67 6e 65 72 2e 44 65 73 69 67 6e 3b 0a 0a 20 20  gner.Design;..  
0230: 70 75 62 6c 69 63 20 70 61 72 74 69 61 6c 20 63  public partial c
0240: 6c 61 73 73 20 43 68 61 6e 67 65 53 63 72 69 70  lass ChangeScrip
0250: 74 44 69 61 6c 6f 67 20 3a 20 46 6f 72 6d 0a 20  tDialog : Form. 
0260: 20 7b 0a 20 20 20 20 70 72 69 76 61 74 65 20 73   {.    private s
0270: 74 72 69 6e 67 20 5f 74 61 62 6c 65 4e 61 6d 65  tring _tableName
0280: 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 73 74  ;.    private st
0290: 61 74 69 63 20 62 6f 6f 6c 20 5f 64 65 66 61 75  atic bool _defau
02a0: 6c 74 53 61 76 65 3b 0a 0a 20 20 20 20 70 75 62  ltSave;..    pub
02b0: 6c 69 63 20 43 68 61 6e 67 65 53 63 72 69 70 74  lic ChangeScript
02c0: 44 69 61 6c 6f 67 28 73 74 72 69 6e 67 20 74 61  Dialog(string ta
02d0: 62 6c 65 4e 61 6d 65 2c 20 73 74 72 69 6e 67 20  bleName, string 
02e0: 73 63 72 69 70 74 2c 20 73 74 72 69 6e 67 20 6f  script, string o
02f0: 72 69 67 69 6e 61 6c 29 0a 20 20 20 20 7b 0a 20  riginal).    {. 
0300: 20 20 20 20 20 5f 74 61 62 6c 65 4e 61 6d 65 20       _tableName 
0310: 3d 20 74 61 62 6c 65 4e 61 6d 65 3b 0a 20 20 20  = tableName;.   
0320: 20 20 20 49 6e 69 74 69 61 6c 69 7a 65 43 6f 6d     InitializeCom
0330: 70 6f 6e 65 6e 74 28 29 3b 0a 0a 20 20 20 20 20  ponent();..     
0340: 20 5f 73 63 72 69 70 74 2e 54 65 78 74 20 3d 20   _script.Text = 
0350: 73 63 72 69 70 74 3b 0a 20 20 20 20 20 20 5f 6f  script;.      _o
0360: 72 69 67 69 6e 61 6c 2e 54 65 78 74 20 3d 20 6f  riginal.Text = o
0370: 72 69 67 69 6e 61 6c 3b 0a 0a 20 20 20 20 20 20  riginal;..      
0380: 5f 73 61 76 65 4f 72 69 67 2e 43 68 65 63 6b 65  _saveOrig.Checke
0390: 64 20 3d 20 5f 64 65 66 61 75 6c 74 53 61 76 65  d = _defaultSave
03a0: 3b 0a 0a 20 20 20 20 20 20 69 66 20 28 53 74 72  ;..      if (Str
03b0: 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74  ing.IsNullOrEmpt
03c0: 79 28 6f 72 69 67 69 6e 61 6c 29 20 7c 7c 20 53  y(original) || S
03d0: 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d  tring.IsNullOrEm
03e0: 70 74 79 28 73 63 72 69 70 74 29 29 0a 20 20 20  pty(script)).   
03f0: 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 6e 74     {.        int
0400: 20 69 6e 63 72 65 61 73 65 20 3d 20 5f 73 70 6c   increase = _spl
0410: 69 74 74 65 72 2e 54 6f 70 20 2d 20 5f 73 68 6f  itter.Top - _sho
0420: 77 2e 54 6f 70 3b 0a 20 20 20 20 20 20 20 20 5f  w.Top;.        _
0430: 73 68 6f 77 2e 56 69 73 69 62 6c 65 20 3d 20 66  show.Visible = f
0440: 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 5f 73  alse;.        _s
0450: 70 6c 69 74 74 65 72 2e 54 6f 70 20 3d 20 5f 73  plitter.Top = _s
0460: 68 6f 77 2e 54 6f 70 3b 0a 20 20 20 20 20 20 20  how.Top;.       
0470: 20 5f 73 70 6c 69 74 74 65 72 2e 48 65 69 67 68   _splitter.Heigh
0480: 74 20 2b 3d 20 69 6e 63 72 65 61 73 65 3b 0a 20  t += increase;. 
0490: 20 20 20 20 20 20 20 5f 73 61 76 65 4f 72 69 67         _saveOrig
04a0: 2e 56 69 73 69 62 6c 65 20 3d 20 66 61 6c 73 65  .Visible = false
04b0: 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20  ;.      }..     
04c0: 20 69 66 20 28 53 74 72 69 6e 67 2e 49 73 4e 75   if (String.IsNu
04d0: 6c 6c 4f 72 45 6d 70 74 79 28 73 63 72 69 70 74  llOrEmpty(script
04e0: 29 20 3d 3d 20 66 61 6c 73 65 29 0a 20 20 20 20  ) == false).    
04f0: 20 20 20 20 5f 73 70 6c 69 74 74 65 72 2e 50 61      _splitter.Pa
0500: 6e 65 6c 31 43 6f 6c 6c 61 70 73 65 64 20 3d 20  nel1Collapsed = 
0510: 74 72 75 65 3b 0a 20 20 20 20 20 20 65 6c 73 65  true;.      else
0520: 0a 20 20 20 20 20 20 20 20 5f 73 70 6c 69 74 74  .        _splitt
0530: 65 72 2e 50 61 6e 65 6c 32 43 6f 6c 6c 61 70 73  er.Panel2Collaps
0540: 65 64 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 7d  ed = true;.    }
0550: 0a 0a 20 20 20 20 70 72 69 76 61 74 65 20 76 6f  ..    private vo
0560: 69 64 20 6e 6f 42 75 74 74 6f 6e 5f 43 6c 69 63  id noButton_Clic
0570: 6b 28 6f 62 6a 65 63 74 20 73 65 6e 64 65 72 2c  k(object sender,
0580: 20 45 76 65 6e 74 41 72 67 73 20 65 29 0a 20 20   EventArgs e).  
0590: 20 20 7b 0a 20 20 20 20 20 20 44 69 61 6c 6f 67    {.      Dialog
05a0: 52 65 73 75 6c 74 20 3d 20 44 69 61 6c 6f 67 52  Result = DialogR
05b0: 65 73 75 6c 74 2e 43 61 6e 63 65 6c 3b 0a 20 20  esult.Cancel;.  
05c0: 20 20 20 20 43 6c 6f 73 65 28 29 3b 0a 20 20 20      Close();.   
05d0: 20 7d 0a 0a 20 20 20 20 70 72 69 76 61 74 65 20   }..    private 
05e0: 76 6f 69 64 20 79 65 73 42 75 74 74 6f 6e 5f 43  void yesButton_C
05f0: 6c 69 63 6b 28 6f 62 6a 65 63 74 20 73 65 6e 64  lick(object send
0600: 65 72 2c 20 45 76 65 6e 74 41 72 67 73 20 65 29  er, EventArgs e)
0610: 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 75 73 69  .    {.      usi
0620: 6e 67 20 28 53 61 76 65 46 69 6c 65 44 69 61 6c  ng (SaveFileDial
0630: 6f 67 20 73 61 76 65 20 3d 20 6e 65 77 20 53 61  og save = new Sa
0640: 76 65 46 69 6c 65 44 69 61 6c 6f 67 28 29 29 0a  veFileDialog()).
0650: 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20        {.        
0660: 73 61 76 65 2e 44 65 66 61 75 6c 74 45 78 74 20  save.DefaultExt 
0670: 3d 20 22 73 71 6c 22 3b 0a 20 20 20 20 20 20 20  = "sql";.       
0680: 20 73 61 76 65 2e 4f 76 65 72 77 72 69 74 65 50   save.OverwriteP
0690: 72 6f 6d 70 74 20 3d 20 74 72 75 65 3b 0a 20 20  rompt = true;.  
06a0: 20 20 20 20 20 20 73 61 76 65 2e 46 69 6c 74 65        save.Filte
06b0: 72 20 3d 20 22 53 51 4c 20 53 63 72 69 70 74 20  r = "SQL Script 
06c0: 46 69 6c 65 73 20 28 2a 2e 73 71 6c 29 7c 2a 2e  Files (*.sql)|*.
06d0: 73 71 6c 7c 41 6c 6c 20 46 69 6c 65 73 20 28 2a  sql|All Files (*
06e0: 2e 2a 29 7c 2a 2e 2a 22 3b 0a 20 20 20 20 20 20  .*)|*.*";.      
06f0: 20 20 73 61 76 65 2e 46 69 6c 65 4e 61 6d 65 20    save.FileName 
0700: 3d 20 53 74 72 69 6e 67 2e 46 6f 72 6d 61 74 28  = String.Format(
0710: 43 75 6c 74 75 72 65 49 6e 66 6f 2e 49 6e 76 61  CultureInfo.Inva
0720: 72 69 61 6e 74 43 75 6c 74 75 72 65 2c 20 22 7b  riantCulture, "{
0730: 30 7d 2e 73 71 6c 22 2c 20 5f 74 61 62 6c 65 4e  0}.sql", _tableN
0740: 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 73 61  ame);.        sa
0750: 76 65 2e 54 69 74 6c 65 20 3d 20 22 53 61 76 65  ve.Title = "Save
0760: 20 53 51 4c 69 74 65 20 43 68 61 6e 67 65 20 53   SQLite Change S
0770: 63 72 69 70 74 22 3b 0a 0a 20 20 20 20 20 20 20  cript";..       
0780: 20 44 69 61 6c 6f 67 52 65 73 75 6c 74 20 3d 20   DialogResult = 
0790: 73 61 76 65 2e 53 68 6f 77 44 69 61 6c 6f 67 28  save.ShowDialog(
07a0: 74 68 69 73 29 3b 0a 0a 20 20 20 20 20 20 20 20  this);..        
07b0: 69 66 20 28 44 69 61 6c 6f 67 52 65 73 75 6c 74  if (DialogResult
07c0: 20 3d 3d 20 44 69 61 6c 6f 67 52 65 73 75 6c 74   == DialogResult
07d0: 2e 4f 4b 29 0a 20 20 20 20 20 20 20 20 7b 0a 20  .OK).        {. 
07e0: 20 20 20 20 20 20 20 20 20 5f 64 65 66 61 75 6c           _defaul
07f0: 74 53 61 76 65 20 3d 20 5f 73 61 76 65 4f 72 69  tSave = _saveOri
0800: 67 2e 43 68 65 63 6b 65 64 3b 0a 0a 20 20 20 20  g.Checked;..    
0810: 20 20 20 20 20 20 75 73 69 6e 67 20 28 53 79 73        using (Sys
0820: 74 65 6d 2e 49 4f 2e 53 74 72 65 61 6d 57 72 69  tem.IO.StreamWri
0830: 74 65 72 20 77 72 69 74 65 72 20 3d 20 6e 65 77  ter writer = new
0840: 20 53 79 73 74 65 6d 2e 49 4f 2e 53 74 72 65 61   System.IO.Strea
0850: 6d 57 72 69 74 65 72 28 73 61 76 65 2e 46 69 6c  mWriter(save.Fil
0860: 65 4e 61 6d 65 2c 20 66 61 6c 73 65 2c 20 45 6e  eName, false, En
0870: 63 6f 64 69 6e 67 2e 55 54 46 38 29 29 0a 20 20  coding.UTF8)).  
0880: 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20          {.      
0890: 20 20 20 20 20 20 69 66 20 28 28 5f 73 68 6f 77        if ((_show
08a0: 2e 56 69 73 69 62 6c 65 20 3d 3d 20 74 72 75 65  .Visible == true
08b0: 20 26 26 20 5f 73 61 76 65 4f 72 69 67 2e 43 68   && _saveOrig.Ch
08c0: 65 63 6b 65 64 20 3d 3d 20 74 72 75 65 29 20 7c  ecked == true) |
08d0: 7c 20 28 5f 73 68 6f 77 2e 56 69 73 69 62 6c 65  | (_show.Visible
08e0: 20 3d 3d 20 66 61 6c 73 65 20 26 26 20 5f 73 70   == false && _sp
08f0: 6c 69 74 74 65 72 2e 50 61 6e 65 6c 32 43 6f 6c  litter.Panel2Col
0900: 6c 61 70 73 65 64 20 3d 3d 20 74 72 75 65 29 29  lapsed == true))
0910: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20  .            {. 
0920: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20               if 
0930: 28 5f 73 68 6f 77 2e 56 69 73 69 62 6c 65 20 3d  (_show.Visible =
0940: 3d 20 74 72 75 65 29 20 77 72 69 74 65 72 2e 57  = true) writer.W
0950: 72 69 74 65 4c 69 6e 65 28 22 2f 2a 22 29 3b 0a  riteLine("/*");.
0960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72                wr
0970: 69 74 65 72 2e 57 72 69 74 65 4c 69 6e 65 28 5f  iter.WriteLine(_
0980: 6f 72 69 67 69 6e 61 6c 2e 54 65 78 74 2e 52 65  original.Text.Re
0990: 70 6c 61 63 65 28 22 5c 72 22 2c 20 53 74 72 69  place("\r", Stri
09a0: 6e 67 2e 45 6d 70 74 79 29 2e 54 72 69 6d 45 6e  ng.Empty).TrimEn
09b0: 64 28 27 5c 6e 27 29 2e 52 65 70 6c 61 63 65 28  d('\n').Replace(
09c0: 22 5c 6e 22 2c 20 22 5c 72 5c 6e 22 29 29 3b 0a  "\n", "\r\n"));.
09d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66                if
09e0: 20 28 5f 73 68 6f 77 2e 56 69 73 69 62 6c 65 20   (_show.Visible 
09f0: 3d 3d 20 74 72 75 65 29 20 77 72 69 74 65 72 2e  == true) writer.
0a00: 57 72 69 74 65 4c 69 6e 65 28 22 2a 2f 22 29 3b  WriteLine("*/");
0a10: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20  .            }. 
0a20: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 5f             if (_
0a30: 73 68 6f 77 2e 56 69 73 69 62 6c 65 20 3d 3d 20  show.Visible == 
0a40: 74 72 75 65 20 7c 7c 20 5f 73 70 6c 69 74 74 65  true || _splitte
0a50: 72 2e 50 61 6e 65 6c 32 43 6f 6c 6c 61 70 73 65  r.Panel2Collapse
0a60: 64 20 3d 3d 20 66 61 6c 73 65 29 20 0a 20 20 20  d == false) .   
0a70: 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65             write
0a80: 72 2e 57 72 69 74 65 4c 69 6e 65 28 5f 73 63 72  r.WriteLine(_scr
0a90: 69 70 74 2e 54 65 78 74 2e 52 65 70 6c 61 63 65  ipt.Text.Replace
0aa0: 28 22 5c 72 22 2c 20 53 74 72 69 6e 67 2e 45 6d  ("\r", String.Em
0ab0: 70 74 79 29 2e 54 72 69 6d 45 6e 64 28 27 5c 6e  pty).TrimEnd('\n
0ac0: 27 29 2e 52 65 70 6c 61 63 65 28 22 5c 6e 22 2c  ').Replace("\n",
0ad0: 20 22 5c 72 5c 6e 22 29 29 3b 0a 20 20 20 20 20   "\r\n"));.     
0ae0: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d       }.        }
0af0: 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 43  .      }.      C
0b00: 6c 6f 73 65 28 29 3b 0a 20 20 20 20 7d 0a 0a 20  lose();.    }.. 
0b10: 20 20 20 70 72 69 76 61 74 65 20 76 6f 69 64 20     private void 
0b20: 5f 73 68 6f 77 5f 4c 69 6e 6b 43 6c 69 63 6b 65  _show_LinkClicke
0b30: 64 28 6f 62 6a 65 63 74 20 73 65 6e 64 65 72 2c  d(object sender,
0b40: 20 4c 69 6e 6b 4c 61 62 65 6c 4c 69 6e 6b 43 6c   LinkLabelLinkCl
0b50: 69 63 6b 65 64 45 76 65 6e 74 41 72 67 73 20 65  ickedEventArgs e
0b60: 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 73 74  ).    {.      st
0b70: 72 69 6e 67 20 6f 6c 64 20 3d 20 5f 73 68 6f 77  ring old = _show
0b80: 2e 54 65 78 74 3b 0a 20 20 20 20 20 20 5f 73 68  .Text;.      _sh
0b90: 6f 77 2e 54 65 78 74 20 3d 20 5f 73 68 6f 77 2e  ow.Text = _show.
0ba0: 54 61 67 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0a  Tag.ToString();.
0bb0: 20 20 20 20 20 20 5f 73 68 6f 77 2e 54 61 67 20        _show.Tag 
0bc0: 3d 20 6f 6c 64 3b 0a 0a 20 20 20 20 20 20 69 66  = old;..      if
0bd0: 20 28 5f 73 70 6c 69 74 74 65 72 2e 49 73 53 70   (_splitter.IsSp
0be0: 6c 69 74 74 65 72 46 69 78 65 64 29 0a 20 20 20  litterFixed).   
0bf0: 20 20 20 7b 0a 20 20 20 20 20 20 20 20 5f 73 70     {.        _sp
0c00: 6c 69 74 74 65 72 2e 49 73 53 70 6c 69 74 74 65  litter.IsSplitte
0c10: 72 46 69 78 65 64 20 3d 20 66 61 6c 73 65 3b 0a  rFixed = false;.
0c20: 20 20 20 20 20 20 20 20 5f 73 70 6c 69 74 74 65          _splitte
0c30: 72 2e 50 61 6e 65 6c 31 43 6f 6c 6c 61 70 73 65  r.Panel1Collapse
0c40: 64 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20  d = false;.     
0c50: 20 7d 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20   }.      else.  
0c60: 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 5f 73      {.        _s
0c70: 70 6c 69 74 74 65 72 2e 49 73 53 70 6c 69 74 74  plitter.IsSplitt
0c80: 65 72 46 69 78 65 64 20 3d 20 74 72 75 65 3b 0a  erFixed = true;.
0c90: 20 20 20 20 20 20 20 20 5f 73 70 6c 69 74 74 65          _splitte
0ca0: 72 2e 50 61 6e 65 6c 31 43 6f 6c 6c 61 70 73 65  r.Panel1Collapse
0cb0: 64 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20  d = true;.      
0cc0: 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a        }.    }.  }.}.