/// <summary> /// Prepares and pre-compile files/items insert statements. /// </summary> private void PrepareStatements() { string q = "INSERT INTO items ( id, parentid, name, chunk, data ) " + "VALUES ( @id, @parentid, @name, @chunk, @data )"; addChunkC = indexDbConn.CreateCommand(); addChunkC.CommandText = q; //prootdrive.ParameterName = "@rootdrive"; //prootdrive.DbType = System.Data.DbType.String; //addChunkC.Parameters.Add(prootdrive); pid.ParameterName = "@id"; pid.DbType = System.Data.DbType.Int64; addChunkC.Parameters.Add(pid); pparentid.ParameterName = "@parentid"; pparentid.DbType = System.Data.DbType.Int64; addChunkC.Parameters.Add(pparentid); pname.ParameterName = "@name"; pname.DbType = System.Data.DbType.String; addChunkC.Parameters.Add(pname); /*SqliteParameter pchunk = new SqliteParameter(); * pchunk.ParameterName = "@chunk"; * pchunk.DbType = System.Data.DbType.String; * addChunkC.Parameters.Add(pchunk);*/ pchunk.ParameterName = "@chunk"; pchunk.DbType = System.Data.DbType.Int64; addChunkC.Parameters.Add(pchunk); pdata.ParameterName = "@data"; pdata.DbType = System.Data.DbType.Binary; addChunkC.Parameters.Add(pdata); addChunkC.Prepare(); }
/// <summary> /// Prepara o comando. /// </summary> public void Prepare() { _command.Prepare(); }
} // End Sub SaveAssembly2 // http://stackoverflow.com/questions/2885335/clr-sql-assembly-get-the-bytestream // http://stackoverflow.com/questions/891617/how-to-read-a-image-by-idatareader // http://stackoverflow.com/questions/4103406/extracting-a-net-assembly-from-sql-server-2005 public virtual void SaveAssembly3(string assemblyName, string path) { string sql = @" --DECLARE @__assemblyname nvarchar(260) --SET @__assemblyname = 'Microsoft.SqlServer.Types' SELECT A.name ,AF.content FROM sys.assembly_files AS AF INNER JOIN sys.assemblies AS A ON AF.assembly_id = A.assembly_id WHERE AF.file_id = 1 AND A.name = @__assemblyname ; "; using (System.Data.IDbConnection conn = new System.Data.SqlClient.SqlConnection("context connection=true")) //Create current context connection { using (System.Data.IDbCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; System.Data.IDbDataParameter param = cmd.CreateParameter(); param.ParameterName = "@__assemblyname"; param.DbType = System.Data.DbType.String; param.Value = assemblyName; param.Size = 128; cmd.Parameters.Add(param); cmd.Prepare(); using (System.Data.IDataReader reader = cmd.ExecuteReader()) { reader.Read(); const int BUFFER_SIZE = 1024; byte[] buffer = new byte[BUFFER_SIZE]; int col = reader.GetOrdinal("content"); int bytesRead = 0; int offset = 0; // write the byte stream out to disk using (System.IO.FileStream bytestream = new System.IO.FileStream(path, System.IO.FileMode.CreateNew)) { while ((bytesRead = (int)reader.GetBytes(col, offset, buffer, 0, BUFFER_SIZE)) > 0) { bytestream.Write(buffer, 0, bytesRead); offset += bytesRead; } // Whend bytestream.Close(); } // End Using bytestream reader.Close(); } // End Using reader } // End Using cmd } // End Using conn } // End Function SaveAssembly3