Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

lưu trữ các tệp trong sql server 2008 bằng cách sử dụng tùy chọn dòng lọc

Phần SQL:

-- Enable the FileStream Feature
EXEC sp_configure filestream_access_level, 2
GO
RECONFIGURE
GO


--Create a special file group and mark it as a stream
CREATE DATABASE FileStreamExample
ON
PRIMARY ( 
    NAME = FileStreamExample_Primary,
    FILENAME = 'c:\Data\FileStreamExample.mdf'),
FILEGROUP FileStreamGroup CONTAINS  FILESTREAM ( 
    NAME = FileStreamExample_FileGroup,
    FILENAME = 'c:\Data\FileStreamExample')
LOG ON ( NAME = FileStreamExample_Log,
    FILENAME = 'c:\Data\FileStreamExample.ldf')
GO

USE FileStreamExample
GO

CREATE TABLE Product
(
  ProductID INT  NOT NULL  PRIMARY KEY,
  Name VARCHAR(50) NOT NULL,
  Picture VARBINARY(MAX) FILESTREAM  NULL,
  RowGuid UNIQUEIDENTIFIER  NOT NULL  ROWGUIDCOL
  UNIQUE DEFAULT NEWID()
)
GO

Insert into Product
Values(1, 'Bicycle', 0x00, default)
GO

Select * From Product

Phần C #:Ghi tệp

   string connectionString = ConfigurationManager.ConnectionStrings["fileStreamDB"].ConnectionString;
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        //Get the PathName of the File from the database
        command.CommandText = "SELECT Picture.PathName(), "
        + "GET_FILESTREAM_TRANSACTION_CONTEXT() FROM Product WHERE ProductID = 1";
        SqlTransaction transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
        command.Transaction = transaction;
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                string path = reader.GetString(0);
                SqlFileStream stream = new SqlFileStream(path,
                    (byte[])reader.GetValue(1), FileAccess.Write,
                    FileOptions.SequentialScan, 0);                        
                string contents = txtInput.Text;                        
                stream.Write((System.Text.Encoding.ASCII.GetBytes(contents)), 0, contents.Length);
                stream.Close();
            }
        }
        transaction.Commit();
    }

Phần C #:Đọc tệp

      string connectionString = ConfigurationManager.ConnectionStrings["fileStreamDB"].ConnectionString;                
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            SqlCommand command = new SqlCommand();
            command.Connection = connection;
            //Get the PathName of the File from the database
            command.CommandText = "SELECT Picture.PathName(), "
            + "GET_FILESTREAM_TRANSACTION_CONTEXT() FROM Product WHERE ProductID = 1";
            SqlTransaction transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
            command.Transaction = transaction;
            using (SqlDataReader reader = command.ExecuteReader())
            {
                while (reader.Read())
                {                        
                    string path = reader.GetString(0);                        
                    SqlFileStream stream = new SqlFileStream(path,
                        (byte[])reader.GetValue(1),FileAccess.Read,FileOptions.SequentialScan, 0);                        
                    lstResults.Items.Clear();
                    int length = (int) stream.Length;
                    byte[] contents = new byte[length];
                    stream.Read(contents,0,length);                     
                    string results = System.Text.Encoding.ASCII.GetString(contents);
                    lstResults.Items.Add(results);
                    stream.Close();
                }
            }
            transaction.Commit();
        }



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 R2 - Xoay vòng động / Xoay vòng với các ngày (di chuyển)

  2. Cách tạo SQL Server 2008 Kiểm tra Ràng buộc của bảng Chỉ cho phép một số ký tự?

  3. Sao chép các gói SSIS được triển khai trên SQL Server trở lại Visual Studio 2008

  4. Các kiểu liệt kê trong SQL Server 2008?

  5. Tại sao WHERE column =NULL không xuất hiện lỗi trong SQL Server?