Example #1
0
        /// <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();
        }
Example #2
0
 /// <summary>
 /// Prepara o comando.
 /// </summary>
 public void Prepare()
 {
     _command.Prepare();
 }
Example #3
0
        }     // 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