wasCSharpSQLite – Blame information for rev 4

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 // $Header$
2 using System;
3  
4 namespace Community.CsharpSqlite
5 {
6  
7 using Vdbe = Sqlite3.Vdbe;
8  
9 /// <summary>
10 /// C#-SQLite wrapper with functions for opening, closing and executing queries.
11 /// </summary>
12 public class SQLiteVdbe
13 {
14 private Vdbe vm = null;
15 private string LastError = "";
16 private int LastResult = 0;
17  
18 /// <summary>
19 /// Creates new instance of SQLiteVdbe class by compiling a statement
20 /// </summary>
21 /// <param name="query"></param>
22 /// <returns>Vdbe</returns>
23 public SQLiteVdbe( SQLiteDatabase db, String query )
24 {
25 vm = null;
26  
27 // prepare and compile
28 #if NET_35
29 Sqlite3.PrepareV2NoTail
30 #else
31 Sqlite3.sqlite3_prepare_v2
32 #endif
33 ( db.Connection(), query, query.Length, ref vm, 0 );
34 }
35  
36 /// <summary>
37 /// Return Virtual Machine Pointer
38 /// </summary>
39 /// <param name="query"></param>
40 /// <returns>Vdbe</returns>
41 public Vdbe VirtualMachine()
42 {
43 return vm;
44 }
45  
46 /// <summary>
47 /// <summary>
48 /// BindInteger
49 /// </summary>
50 /// <param name="index"></param>
51 /// <param name="bInteger"></param>
52 /// <returns>LastResult</returns>
53 public int BindInteger( int index, int bInteger )
54 {
55 if ( ( LastResult =
56 #if NET_35
57 Sqlite3.BindInt
58 #else
59 Sqlite3.sqlite3_bind_int
60 #endif
61 ( vm, index, bInteger ) ) == Sqlite3.SQLITE_OK )
62 { LastError = ""; }
63 else
64 {
65 LastError = "Error " + LastError + "binding Integer [" + bInteger + "]";
66 }
67 return LastResult;
68 }
69  
70 /// <summary>
71 /// <summary>
72 /// BindLong
73 /// </summary>
74 /// <param name="index"></param>
75 /// <param name="bLong"></param>
76 /// <returns>LastResult</returns>
77 public int BindLong( int index, long bLong )
78 {
79 if ( ( LastResult =
80 #if NET_35
81 Sqlite3.BindInt64
82 #else
83 Sqlite3.sqlite3_bind_int64
84 #endif
85 ( vm, index, bLong ) ) == Sqlite3.SQLITE_OK )
86 { LastError = ""; }
87 else
88 {
89 LastError = "Error " + LastError + "binding Long [" + bLong + "]";
90 }
91 return LastResult;
92 }
93  
94 /// <summary>
95 /// BindText
96 /// </summary>
97 /// <param name="index"></param>
98 /// <param name="bLong"></param>
99 /// <returns>LastResult</returns>
100 public int BindText( int index, string bText )
101 {
102 if ( ( LastResult =
103 #if NET_35
104 Sqlite3.BindText
105 #else
106 Sqlite3.sqlite3_bind_text
107 #endif
108 ( vm, index, bText, -1, null ) ) == Sqlite3.SQLITE_OK )
109 { LastError = ""; }
110 else
111 {
112 LastError = "Error " + LastError + "binding Text [" + bText + "]";
113 }
114 return LastResult;
115 }
116  
117 /// <summary>
118 /// Execute statement
119 /// </summary>
120 /// </param>
121 /// <returns>LastResult</returns>
122 public int ExecuteStep()
123 {
124 // Execute the statement
125 int LastResult =
126 #if NET_35
127 Sqlite3.Step
128 #else
129 Sqlite3.sqlite3_step
130 #endif
131 ( vm );
132 return LastResult;
133 }
134  
135 /// <summary>
136 /// Returns Result column as Long
137 /// </summary>
138 /// </param>
139 /// <returns>Result column</returns>
140 public long Result_Long( int index )
141 {
142 return
143 #if NET_35
144 Sqlite3.ColumnInt64
145 #else
146 Sqlite3.sqlite3_column_int64
147 #endif
148 ( vm, index );
149 }
150  
151 /// <summary>
152 /// Returns Result column as Text
153 /// </summary>
154 /// </param>
155 /// <returns>Result column</returns>
156 public string Result_Text( int index )
157 {
158 return
159 #if NET_35
160 Sqlite3.ColumnText
161 #else
162 Sqlite3.sqlite3_column_text
163 #endif
164 ( vm, index );
165 }
166  
167  
168 /// <summary>
169 /// Returns Count of Result Rows
170 /// </summary>
171 /// </param>
172 /// <returns>Count of Results</returns>
173 public int ResultColumnCount()
174 {
175 return vm.pResultSet == null ? 0 : vm.pResultSet.Length;
176 }
177  
178 /// <summary>
179 /// Reset statement
180 /// </summary>
181 /// </param>
182 /// </returns>
183 public void Reset()
184 {
185 // Reset the statment so it's ready to use again
186 #if NET_35
187 Sqlite3.Reset
188 #else
189 Sqlite3.sqlite3_reset
190 #endif
191 ( vm );
192 }
193  
194 /// <summary>
195 /// Closes statement
196 /// </summary>
197 /// </param>
198 /// <returns>LastResult</returns>
199 public void Close()
200 {
201 #if NET_35
202 Sqlite3.Finalize
203 #else
204 Sqlite3.sqlite3_finalize
205 #endif
206 ( vm );
207 }
208  
209 }
210 }