ADO.NET :: SQL 2008 FileStream Feature?
Jan 4, 2011I need a working example of SQL 2008 File Stream example for overwriting the existing file contents.
View 2 RepliesI need a working example of SQL 2008 File Stream example for overwriting the existing file contents.
View 2 RepliesI'm trying to implement the SQL Filestream feature so that I can store the physical PDF on hard disk, while still allowing full-text searching. I've set up my database to allow filestreaming, and as far as I know, have made the table correctly (I set it up based on this article: http://msdn.microsoft.com/en-us/library/cc949109(SQL.100).aspx). I'm just a bit confused about how it's supposed to work, and what steps I need to manually perform.
My understanding is that I convert the PDF to binary and store the binary data in the varbinary(max) field designated as the "Filestream" field, and once the data is stored, the physical PDF file will automatically be placed in the directory I specified when I set up the Filestream option in SQL server. I can also store the file name and extension for retrieval purposes, but the file must be streamed, rather than accessed directly. Is this all true?
What's currently happening is that I save the binary data to the table, but nothing else happens - a file never shows up on the server. The only contents of the directory are two empty folders named: $FSLOG, and, 9953ffec-7c59-41ce-943d-98073853ba0d, and a HDR file named "filestream". Do I need to manually save the file to disk, in addition to saving the binary data?
I am creating an application like youtube to store videos and I need some advice.Should I use SQL Server FileStream to store the video files or should I store them somewhere on the hard disk and record the path as a varchar(MAX) inside SQL Server?Which is recommended and why?Do you recommend something else apart from both these?
View 3 RepliesI've got a vb.net page that when a user clicks a button in a gridview, it copys the file (row seleted) in the gridview as "Label2" from the webserver to the users pc. (We had to setup a lot of security to get it so the webserver could copy to the users pc). I have that all working fine, but now, I'm trying to see if FileStream will then open the file that was just downloaded on the users PC. I'm not familiar with FileStream, and could use a little push in the right direction. (Disclaimer, yes I know downloading the file directly to the pc is a crazy thing to do, but it's a really long story. :-)
For the FileStream portion, I found this sample, but don't quite understand if I can incorporate it into my button click event. Here's the sample [URL]
[Code]....
[Code]....
[Code]....
i have some files, and i need to upload these files into sql server 2008 by using filestream. lets take table name as custfiles,columns are fileid,filename,filepath,filesize.
1.how to create table using filestream?
2.how to insert file (record) into table from .net environment?
3.how to retrive that file from .net environment?
i use filestream in sql server 2008 and vs 2008(web project)
local pc (application server and database server are all in one pc):
no problem can do the filestream (i mean read and write)
connectionString="data source=ETACTNB10SA;database=XXXXXt;user=XX;password=XXXXX;Trusted_Connection=true;Integrated Security = SSPI;" providerName="System.Data.SqlClient"
network (one pc for application server, other one for database server )
if i use
connectionString="data source=ETACTNB10SA;database=XXXXXt;user=XX;password=XXXXX;Trusted_Connection=true;Integrated Security = SSPI;" providerName="System.Data.SqlClient"
problem is can not access database
if i use
connectionString="data source=ETACTNB11SA;database=XXXXXt;user=XX;password=XXXXX;" providerName="System.Data.SqlClient"
problem is filestream access denied (database can access, mean can do normal insert , update and delete)
code for read function of filestratm:
SqlTransaction objSqlTran = myConn.BeginTransaction();
i have used filestream of sql server 2008 for storing images. i want to retrive that image and bind to image control.but not getting the correct path.
View 2 RepliesI'm using the full-text feature on SQL Server 2008 RC2. Everything had been working well until today. I wanted to change the language for word breakers from Neutral to Slovakia. After I did that, I can't perform full-text search anymore. It simply give me no rows. I even deleted the old full-text catalog and created a new one and populated it, but it still gave no solutions. I tried to query dm_fts_index_keywords_by_document on my table and get only 1 row with a display term END OF FILE.
View 3 RepliesI am in process of sending the file along with HttpWebRequest. My file will be from FileUpload UI. Here i need to convert the File Upload to filestream to send the stream along with HttpWebRequest. How do i convert the FileUpload to a filestream?
View 3 RepliesI am trying to get a FileStream from a relative path. The file is in my project, but when I try to do that it automatically appends C:\ in front of that.
1. Does the FileStream only works if the file is on a local Hard Dive?
2. Also if it works from the local hard drive, then does my application needs some permission to read the file from C Drive?
What is the difference between :enable filestream for t-sql statement and enable filestream for file i/o streaming access in sql 2008 when and how both feature works?
View 3 RepliesI'm a little green when it comes to streaming and serialization...but what i wanna do is make the Upload method on the server return a serializable object to the client (it is void right now). I have a public class ServiceResult that i decorate with [Serializable], and a public class FileTransferService that implements IFileTransferService
[ServiceContract()]
public interface IFileTransferService
{
[OperationContract(IsOneWay = false)]
string Upload(FileTransferRequest request);
}
The implementation does its thing, and then at the end i create and serialize the object and try to return the string
return ServiceResultSerializer.SerializeAnObject(result);
On the client side i call this service using this class
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName = "IFileTransferService")]
public interface IFileTransferService
{
// CODEGEN: Generating message contract since the wrapper name (FileTransferRequest) of message FileTransferRequest does not match the default value (Upload)
[System.ServiceModel.OperationContractAttribute(IsOneWay = false, Action = "http://tempuri.org/IFileTransferService/Upload")]
string Upload(FileTransferRequest request);
}
I'm basically taking this project found on this blog: [URL] And trying to make it return a value that the client caller can use I get an error right now that says: The operation 'Upload' could not be loaded because it has a parameter or return type of type System.ServiceModel.Channels.Message or a type that has MessageContractAttribute and other parameters of different types. When using System.ServiceModel.Channels.Message or types with MessageContractAttribute, the method must not use any other types of parameters. Which i have no idea what it means :P I think cuz im trying to change the Service paramaters.
I want to upload files from fileupload control and save them as varbinary Filestream in the database.
First of all, does this make sense? Would you recommend this?
Then, how does it work? I want to be able to upload Imagefiles as well as .doc and .xls.
so when i have uploaded a .xls, how would i save it to the Database(i'm going to use Linq2Entities).
I'm using a web form that allows users to upload media files. The code works great on small to medium size files, but I've found that if a file is really big(like bigger than 15MB), the user will get a 404 error. Currently I'm using the code below to handle the file. Does .NET provide another way to handle larger files?
[Code]....
I have a class DocumentGenerator which wraps a MemoryStream. So I have implemented IDisposable on the class.
I can't see how/where I can possibly dispose it though.
This is my current code, which performs a file download in MVC:
using (DocumentGenerator dg = DocumentGenerator.OpenTemplate(path))
{
/* some document manipulation with the
DocumentGenerator goes here ...*/
return File(dg.GetDocumentStream(), "text/plain", filename);
}
This errors as the stream is closed/disposed before the controller has finished with it. How can I make sure my resources are properly disposed in this situation?
EDIT: My implementation of IDisposable at the moment just disposes the MemoryStream. I know it's not a proper implementation, I just used it as a test. Is there something different I could do here to make it work?
public void Dispose()
{
_ms.Dispose();
_ms = null;
}
I am storing files in SQL using FileStream from a ASP .NET app. I am also storing the filetypes.
I want to allow users to download (and open these files) to view them. I see a lot of code samples on how I can read data out of FileStream, and put it into a buffer in memory. I guess from there, I can write it out to a file.
But since the data is already in a file (SQL "Select myFileStreamColumn.FilePath()" returns it's location) can't I somehow put up a Save As... dialog for the user, and let them download it directly from the SQL storage area to their local PC?
Do I have to read the data out of SQL, write it out to a file, and then give them a Save As... dialog pointing to that new file?
I want to create an sql table with photos, and i want to use filestream data.
View 3 RepliesI'm using Filestream for read big file (> 500 MB) and I get the OutOfMemoryException. Any solutions about it??
I want this in my app:
Read DATA from Oracle
Uncompress file using FileStream and BZip2
Read file uncompressed and send it to asp.net page for download. When I read file from disk, Fails !!! and get OutOfMemory.
. My Code is:
using (var fs3 = new FileStream(filePath2, FileMode.Open, FileAccess.Read))
{
byte[] b2 = ReadFully(fs3, 1024);
}
// http://www.yoda.arachsys.com/csharp/readbinary.html
public static byte[] ReadFully(Stream stream, int initialLength)
{
// If we've been passed an unhelpful initial length, just
// use 32K.
if (initialLength < 1)
{
initialLength = 32768;
}
byte[] buffer = new byte[initialLength];
int read = 0;
int chunk;
while ((chunk = stream.Read(buffer, read, buffer.Length - read)) > 0)
{
read += chunk;
// If we've reached the end of our buffer, check to see if there's
// any more information
if (read == buffer.Length)
{
int nextByte = stream.ReadByte();
// End of stream? If so, we're done
if (nextByte == -1)
{
return buffer;
}
// Nope. Resize the buffer, put in the byte we've just
// read, and continue
byte[] newBuffer = new byte[buffer.Length * 2];
Array.Copy(buffer, newBuffer, buffer.Length);
newBuffer[read] = (byte)nextByte;
buffer = newBuffer;
read++;
}
}
// Buffer is now too big. Shrink it.
byte[] ret = new byte[read];
Array.Copy(buffer, ret, read);
return ret;
}
I'm trying to define a sqldatasource for writing out SQL Filestream data. For example, I have a SQL table with a column named Data, which is FileStream. The column type is VarBinary(max)
InsertCommand = "INSERT INTO MYTABLE (Data) VALUES (@Data)"
<asp:Parameter Name="Data" Type = ???? What goes here????>
In the code-behind to load the data, I want something like,
e.Command.Parameters("@Data").Value = StringToByteArray("HERE'S THE CONTENTS OF MY FILE")
I have StringToByteArray defined as Encoding.Unicode.GetBytes(String.Empty+inputParameter)
Can we get the doc type and contenttype of a file from the filestream field?
View 2 RepliesBelow I have some code that I am using to give the user the option to save or open a file. However, for whatever reason, when it does this it appends everything that is in my .aspx page to the end of my file. I've no clue why this is happening or how to fix.
[Code]....
Is there anything special you have to do to retrieve Filestream data using a SqlDataSource? I'm using VB and have this as my sqldatasource:
<asp:SqlDataSource ID="SqlDataSourceReadPD" runat="server" etc...
SelectCommand="SELECT [PDIPAttachment] FROM [PositionDescriptions] WHERE ([CP_IDString] = @CP_IDString)">
<SelectParameters>
<asp:Parameter Name="CP_IDString" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
PDIPAttachment is a FILESTREAM column in my table called PositionDescriptions
and this is some of my VB cod:
Dim dv As DataView = DirectCast(SqlDataSourceReadPD.Select(DataSourceSelectArguments.Empty), DataView)
Dim dr As DataRowView
For Each dr In dv
Dim data as Byte() = System.Text.Encoding.ASCII.GetBytes(dr("PDIPAttachment").ToString())
Next
The Filestream data has a PDF file in it, but what I"m getting back in "data" are 13 bytes consisting of: "System.Byte[]".
In of my application I am using the database to store and retrive images. The table stores the documents and the datatype of the field is IMage.
Now with Sql Server 2008, i would like to upgrade this to use this new feature. WHat changes do I have to make in terms of code and also in the database.
I have a database containing a table with about 700,000 images so I recently enabled Filestream. However, I can't figure out how to render the images.
I have an Imagefield control within a Detailsview which is using an .aspx file to render the image through the DataImageUrlFormatString (which is typical). In my select statements I tried changing the binary field containing the image from objectdata to objectdata.PathName() per the Microsoft documentation but this does not work. I get the red X image box.
I am using VSTS 2008 + C# + .Net 3.5 + IIS 7.0 + ASP.Net to develop a simple web application. I want to add RSS feature to some of the pages of my web site, so that people could use their popular RSS reader to receive notification of content update.
Any easy way to do this in my development environment? I only need very basic RSS feature.