1 2006-09-14 Mart Roosmaa <roosmaa@gmail.com>
3 * SqliteCommand.cs: Handle enums by their underliying type.
5 2006-09-13 Mart Roosmaa <roosmaa@gmail.com>
7 * SqliteDataReader.cs: Implemented GetBytes ().
8 * SqliteCommand.cs: Automatically convert enums to Int32.
10 2006-08-20 Joshua Tauberer <jt@occams.info>
12 * SqliteConnection.cs: Changed Version property (which is
13 read-only) from internal to public so users can know
14 which version of Sqlite was actually connected to.
16 2006-05-25 Joshua Tauberer <tauberer@for.net>
18 * SqliteCommand.cs: Unnamed parameters by index weren't
21 2006-05-13 Joshua Tauberer <tauberer@for.net>
23 Reported by Sebastian Dröge <slomo@ubuntu.com>.
24 * Sqlite.cs: The binding for sqlite3_last_insert_rowid had
25 the wrong type for the return (int vs long).
26 * SqliteConnection: LastInsertRowId: I didn't want to break
27 the public API, so it casts the long return from that
29 * SqliteCommand: LastInsertRowID(): Wrap the above property.
31 2006-03-14 Kamil Skalski <nazgul@nemerle.org>
33 * SqliteConnection.cs, Sqlite.cs: Add option for specifying busy
34 timeout in underlying sqlite structure. It allows enabling
35 automatic waiting for lock cleanup in multithreaded usage.
38 2006-03-11 Joshua Tauberer <tauberer@for.net>
40 * Use HGlobal rather than CoTaskMem String-To-Ptr functions in
41 Marshal class. StringToCoTaskMemAnsi is broken (pending it
42 being fixed): it actually uses Ansi, instead of UTF-8. Now,
43 Sqlite2 with no encoding parameter uses UTF-8 encoding. Any
44 Sqlite2 DB since Jan. 20 was encoded in ANSI but unreadable
47 2006-03-07 Kamil Skalski <nazgul@nemerle.org>
49 * SqliteDataReader.cs: Handle null values in result as having
52 2006-02-10 Joshua Tauberer <tauberer@for.net>
54 * SqliteDataReader: Made 64bit clean. Patch from
55 Joe Shaw <joeshaw@novell.com>.
57 2006-01-22 Joshua Tauberer <tauberer@for.net>
59 Most of the below fixes (in previous changes too) are thanks
60 to Thomas Zoechling and Tom Surace, and the byte[]->blob
61 parameter binding is thanks to <pablosantosluac@terra.es>.
64 - Don't use a regex for finding parameters in v2.
65 It didn't work when there were no parameters in
66 the query (infinite loop of some sort -- should be filed
67 as a Mono bug I guess). Just scan for parameters names
68 that aren't within quotes.
69 - That wasn't even being called. Now it is.
70 - Marshaling for sqlite3_bind_parameter_name was wrong, as
71 was the unicode call to bind_text16 which was looking for
72 byte length of string while we were providing char length.
73 - Bind byte[] parameters as blobs.
74 - Trim the SQL string. Trailing spaces makes it think
75 another statement is coming along.
76 * SqliteDataReader.cs: When DATE/DATETIME columns come
77 back as Int64s, return them using DateTime.FromFileTime.
78 And don't return Int64s as ints if they aren't in the
80 - Check column names case-insensitively (bug 77272).
81 * SqliteParameter.cs: Public parameter names made nicer.
82 * SqliteParameterCollection.cs: Allow users to set parameter
83 names with or without the : prefix that Sqlite wants.
84 * Sqlite.cs: Supporting changes.
85 * SqliteDataReader, SqliteConnection: ToLower with the
86 invariant culture (bug 77372).
88 2006-01-20 Joshua Tauberer <tauberer@for.net>
90 * Sqlite3 calls now use unicode encoding. Sqlite2
91 calls use ANSI encoding (a superset of the default
92 expected encoding ISO8859-1), unless the new
93 encoding= connection string argument is used,
94 in which case that encoding is used. But that encoding
95 must use a single-byte null terminator, so only
96 UTF-8 is recommended. This removes the dependency
97 on Mono.Posix. If UTF-8 encoding is used, Sqlite2's
98 LIKE, GLOB, LENGTH, and SUBSTR aren't going to respect
99 multibyte chars unless Sqlite was specifically compiled
101 * SqliteDataReader.this[] is fixed to wrap GetValue.
103 2006-01-06 Joshua Tauberer <tauberer@for.net>
105 * SqliteDataReader.cs: GetFieldType can be called
106 before the reader is positioned on a row. In that
107 case, return the types for the first row.
109 2006-01-02 Joshua Tauberer <tauberer@for.net>
111 * SqliteCommand.cs: It was revealed that preparing
112 statements ahead of time was not possible as table
113 schema changes lead to errors. This needed serious
114 reorganization. SQL syntax errors and BUSY errors
115 are now raised in nice exceptions.
116 * SqliteDataReader.cs:
117 * Use object[] in place of ArrayList for each row.
118 * For Sqlite3, which remembers whether a value was
119 an integer, text, real, or blob, actually return
120 longs, strings, doubles, and byte[]s.
121 * GetDataTypeName() works where possible (Sqlite3).
122 * INT/INTEGER columns are now returned as ints,
123 rather than longs, for Sqlite3. Similarly for
124 DATE and DATETIME columns, now returning DateTimes.
125 * SqliteConnection.cs.cs: BeginTransaction(IsolationLevel)
126 throws InvalidOperationException per the MS docs.
127 * SqliteExceptions.cs: New file with SqliteSyntaxException,
128 SqliteExecutionException, and its subclass SqliteBusyException.
130 2005-12-27 Jonathan Pryor <jonpryor@vt.edu>
132 * SqliteCommand.cs: Use non-obsolete UnixMarshal members.
134 2005-10-06 Chris Lahey <clahey@localhost.localdomain>
136 * SqliteCommand.cs (Prepare): Use UnixMarshal here to get proper
139 2005-07-28 Joshua Tauberer <tauberer@for.net>
141 * Sqlite.cs, SqliteCommand.cs: Report string error messages
142 in prepare, for version 3.
144 2005-07-26 Joshua Tauberer <tauberer@for.net>
146 SQL commands can have multiple statements within them (i.e.
147 separated by semicolons). Sqlite has to be instructed to
148 process each command.
150 * Sqlite.cs: Pass the sql command as an IntPtr so we can
151 see where pzTail takes us.
152 * SqliteCommand.cs: Lazily load sql_params for good measure.
153 Iterate compile/prepare until each statement in the string
154 has been processed, and retain pointers to each compiled
155 statement. When executing, run all of the statements.
157 2005-06-14 Thomas Zoechling <thomas.zoechling@gmx.at>
160 - Added sqlite3_bind_* for native Sqlite3 Parameters
162 - Added methods for parameter processing/binding (sqlite3 uses bind / sqlite2 uses regEx to extract parameters)
163 - Sqlite uses ':' as delimeter!
164 * SqliteParameterCollection.cs
165 - Chris Turchin fixed a problem in the Parameter Hashmap
166 * SqliteTransaction.cs
167 - The CommandText for the Rollback Command was "COMMIT" ! ->changed :)
169 2005-05-20 Sureshkumar T <tsureshkumar@novell.com>
171 * SqliteConnection.cs:
172 - SetConnectionString: trim white spaces, ignore empty connection
174 - SetConnectionString: if file://,db_file starts from pos 7 not 6.