Exemplo n.º 1
0
    public SqliteSingleConnection(string connectionString)
    {
        lock (_simpleLocker)
        {
            int sourceIndex = connectionString.IndexOf("Source", StringComparison.OrdinalIgnoreCase);
            if (sourceIndex < 1)
            {
                return;
            }
            int startedIndex = connectionString.IndexOf('=', sourceIndex) + 1;
            if (startedIndex < sourceIndex)
            {
                return;
            }
            int endIndex = connectionString.IndexOf(';', startedIndex);
            if (endIndex < startedIndex)
            {
                endIndex = connectionString.Length - 1;
            }

            _curDbfile = connectionString.Substring(startedIndex, (endIndex - startedIndex));
            if (!_dbFileDic.ContainsKey(_curDbfile))
            {
                var con = new ConnectionWithRefCount(connectionString);
                _dbFileDic.Add(_curDbfile, con);
            }
            ConnectionWithRefCount connection = _dbFileDic[_curDbfile];
            connection.Initialize();

            CurConnection = connection;
        }
    }
Exemplo n.º 2
0
    public SqliteSingleConnection(SQLiteConnectionStringBuilder connectObject)
    {
        lock (_simpleLocker)
        {
            _curDbfile = connectObject.DataSource;

            if (!_dbFileDic.ContainsKey(_curDbfile))
            {
                var con = new ConnectionWithRefCount(connectObject.ConnectionString);
                _dbFileDic.Add(_curDbfile, con);
            }
            ConnectionWithRefCount connection = _dbFileDic[_curDbfile];
            connection.Initialize();

            CurConnection = connection;
        }
    }