예제 #1
0
        protected void GrdViewDocs_ItemCommand(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName == "Select")
            {
                GridDataItem dataitem = e.Item as GridDataItem;

                //DataTable dtcon = CM_Main.SelectJob("CASE11", dataitem["REQUEST_ID"].Text, "", "", "", "", System.DateTime.Now);
                //grdRequest.DataSource = dtcon;
                //grdRequest.DataBind();

                //  int idx = dataitem["REQUEST_ID"].Text;

                // Label lbl = dataitem["ID"].Text;

                System.Data.OracleClient.OracleConnection conn      = new System.Data.OracleClient.OracleConnection(ConfigurationManager.ConnectionStrings["CGConnectionString"].ToString());
                System.Data.OracleClient.OracleCommand    myCommand = new System.Data.OracleClient.OracleCommand("SELECT * FROM wf_cm_docs_jobwise_blob WHERE ID = '" + dataitem["ID"].Text + "'", conn);
                conn.Open();
                System.Data.OracleClient.OracleDataReader myReader = myCommand.ExecuteReader(System.Data.CommandBehavior.Default);
                try
                {
                    while (myReader.Read())
                    {
                        System.Data.OracleClient.OracleLob myLob = myReader.GetOracleLob(myReader.GetOrdinal("DOCUMENT"));
                        if (!myLob.IsNull)
                        {
                            string FN = myReader.GetString(myReader.GetOrdinal("DOCUMENT_NAME"));


                            //Use buffer to transfer data
                            byte[] b = new byte[myLob.Length];
                            //Read data from database
                            myLob.Read(b, 0, (int)myLob.Length);


                            Response.AddHeader("content-disposition", "attachment;filename=" + FN);
                            Response.ContentType = "application/octectstream";
                            Response.BinaryWrite(b);
                            Response.End();
                        }
                    }
                }
                finally
                {
                    myReader.Close();
                    conn.Close();
                }
            }
        }
예제 #2
0
 public void InsertCLOB(string SQLStatement, string str)
 {
     if (SQLStatement.Length > 0)
     {
         if (connOracle.State.ToString().Equals("Open"))
         {
             byte[] newvalue = System.Text.Encoding.Unicode.GetBytes(str);
             sqlCommandOracle =
                 new System.Data.OracleClient.OracleCommand(SQLStatement, connOracle);
             rstOracle = sqlCommandOracle.ExecuteReader();
             rstOracle.Read();
             txn  = connOracle.BeginTransaction();
             clob = rstOracle.GetOracleLob(0);
             clob.Write(newvalue, 0, newvalue.Length);
             txn.Commit();
         }
     }
 }
예제 #3
0
        protected void DataList2_SelectedIndexChanged(object sender, EventArgs e)
        {
            int idx = DataList2.SelectedIndex;

            Label lbl = (Label)DataList2.Items[idx].FindControl("Label2");

            System.Data.OracleClient.OracleConnection conn      = new System.Data.OracleClient.OracleConnection(ConfigurationManager.ConnectionStrings["CGConnectionString"].ToString());
            System.Data.OracleClient.OracleCommand    myCommand = new System.Data.OracleClient.OracleCommand("SELECT * FROM wf_it_images WHERE ID = '" + lbl.Text + "'", conn);
            conn.Open();
            System.Data.OracleClient.OracleDataReader myReader = myCommand.ExecuteReader(System.Data.CommandBehavior.Default);
            try
            {
                while (myReader.Read())
                {
                    System.Data.OracleClient.OracleLob myLob = myReader.GetOracleLob(myReader.GetOrdinal("IMAGE"));
                    if (!myLob.IsNull)
                    {
                        string FN = myReader.GetString(myReader.GetOrdinal("IMAGE_NAME"));


                        //Use buffer to transfer data
                        byte[] b = new byte[myLob.Length];
                        //Read data from database
                        myLob.Read(b, 0, (int)myLob.Length);


                        Response.AddHeader("content-disposition", "attachment;filename=" + FN);
                        Response.ContentType = "application/octectstream";
                        Response.BinaryWrite(b);
                        Response.End();
                    }
                }
            }
            finally
            {
                myReader.Close();
                conn.Close();
            }
        }
예제 #4
0
        // https://social.msdn.microsoft.com/Forums/en-US/dc1b053d-f0d5-48f8-ad82-fb6d96d27f80/how-to-insert-or-update-blob-data-for-sqlserver-based-on-buffersize?forum=adodotnetdataproviders
        public void WriteLargeFileChunckedOracle(string path)
        {
            byte[] buffer = new byte[1024];
            using (System.Data.OracleClient.OracleCommand cmd = null)
            {
                using (System.Data.OracleClient.OracleDataReader dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection))
                {
                    // this code segment works well for Oracle database
                    System.Data.OracleClient.OracleLob lob = dataReader.GetOracleLob(1);
                    using (System.IO.Stream fileStream = System.IO.File.OpenRead(path))
                    {
                        lob.SetLength(0);

                        int readBytes = 0;
                        while ((readBytes = fileStream.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            lob.Write(buffer, 0, readBytes);
                        } // Whend
                    }     // End Using fileStream
                }         // End Using dataReader
            }             // End Using cmd
        }                 // End Sub WriteLargeFileChunckedOracle