System.Data.SQLite
View Ticket
Not logged in
Ticket UUID: 1a4d4516ba0f116cca388598f3f3e27b93c83720
Title: The value acquired from the table is garbled.
Status: Closed Type: Incident
Severity: Important Priority: Blocker
Subsystem: Integration_Via_PInvoke Resolution: Need_More_Info
Last Modified: 2014-02-10 20:17:45
Version Found In: 1.0.90.0
User Comments:
anonymous added on 2014-02-05 03:59:49:
Please teach me the solution of this phenomenon. 

Exception
----------------------------------- 
System.ArgumentException: Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path)
   at System.IO.Path.GetFileName(String path)

----------------------------------- 

Program source is like this...
----------------------------------- 
private static string Get(SQLiteDataReader reader) {
	// The result of SELECT is in SQLiteDataReader.
	if (reader.Read()) {
		string route = selectResult["ROUTE"].ToString();
		return Path.GetFileName(route);
	}
}

Create Table
----------------------------------- 
CREATE TABLE TBL(
  "ID" "INTEGER",
  "ROUTE" "TEXT"
  )

CREATE INDEX 
  INDEX_TBL_ID ON TBL(ID)

SELECT * 
  FROM TBL 
  WHERE ID = ?
----------------------------------- 
? is variable.


About this phenomenon.
----------------------------------------------------
1. The value stored in Variable 'route' differs from the value stored in the collumn [ROUTE] of a table.
  Probably it is funny characters.
    collumn [ROUTE]:NET\123456\12345678A0
    variable 'route':??T\123456\12345678A0

2.It is certainly two characters "NE" of a head that are garbled. 

3.The data inputted into Collumn [ROUTE] is only an alphanumeric character and \. 

4. When a phenomenon occurs, if the same SELECT is performed again,
  the value of a collumn [ROUTE] can be acquired correctly. 

5.The data at the time of a phenomenon occurring differs each time. 

6.SELECT is performed frequently.But This problem occurs rarely. 
----------------------------------------------------

Environment
----------------------------------- 
  .NET Framework:3.5 Service Pack 1
  Language:C#
  OS:Windows7 32bit and Windows7 64bit
  SQLite Version:1.0.86.0 and 1.0.90.0

mistachkin added on 2014-02-05 05:09:43:
I've got a few questions:

1. Where did the "selectResult" object come from?

2. Is the application using P/Invoke or native components?

3. Have you tried reproducing the issue with the debug build of System.Data.SQLite?

mistachkin added on 2014-02-05 10:46:16:
Also, does the connection string use the "Password" property?

mistachkin added on 2014-02-07 00:56:11:
Another couple questions:

1. Is the application multi-threaded?

2. Is the same SQLiteConnection, SQLiteCommand, or SQLiteDataReader
   being shared between threads?

mistachkin added on 2014-02-07 01:04:27:
See also [5363fd4af6].

mistachkin added on 2014-02-07 09:01:05:
Without further information from the opener, ticket will be closed on Monday,
February 10th, 2014.