2011年8月3日 星期三

#VB 資料庫存放各種副檔名文件的可能性

再來是如何直接開啟該檔案
做法應該是
檢查 TMP 有沒有該檔案的暫存檔存在
沒有就執行寫入暫存檔動作

最後應該會建立一個超連結
透過該超連結打開該暫存檔


[C#]基本的開啟檔案Application


 Dim cms As String = "insert into tblsysattachment (refno, corpid, funid, docname, filename, attfile) values ('000213B----XD', '255', 'Stock', '" & myFile & "', '" & myFile & "', '@myByte') "
            Dim cm As New SqlClient.SqlCommand(cms, cn)
            cm.Parameters.Add("@myByte", SqlDbType.Image)
            cm.Parameters("@myByte").Value = myByte

======================================
可以了

資料庫存的 Imag 型別 是一個 Byte()
先透過 FileStream 建立 檔案(包含目錄位置)
然後弄一個 Buffer 緩衝區 用來寫入資料
然後弄一個 BinaryWriter 去寫入資料到檔案

三個 資料串流鏈結

把資料讀寫到 Buffer
Buffer.flush 清空緩衝,資料全部實際寫入

try-catch
關閉 Buffer
關閉 FileStream

完成

================================================
該死好像可以
ERP目前做得到

所以沒道理.net做不來
要查一下

看資料庫,似乎是把檔案存成二進位檔案,(作法像是IMAG,)
會記錄檔案名稱
取出來的時候我想程式碼
不知道是不是單純開一個相同附檔名的檔案
然後把資料到進去

然後開起就去叫用預設的副檔名開啟程式,去開啟
要測試看看

建立的檔案應該存放在tmp資料夾
不會去影響當初存入的檔案內容

所有APP操作都在tmp資料夾建立的暫存檔案上

'知道說SQL 存放Imag型別的資料,可以是任何形式的檔案(強)

'該Imag取出的數值,似乎會是一個 Byte() 型別
所以可能透過Stream去開一個檔案,
給定抓到的副檔名,
建一個 tmp 目錄
檔名改一下流水號之類的

把Byte()寫進去

C# Stream 與 Byte [] 轉換


試試看
=============================================
目前是想說透過類似 serailization 序列化
把檔案資料讀取轉 Bite
然後序列化純到資料庫

到時候再讀取Bite
轉回原始格式

但是問題是怎麼知道說原始格式是什麼
好像有 get方法可以得到原本的編碼格式

不知道可不可以用

應該沒這麼簡單


==========================================
.NET 筆記:序列化

感覺好像不能用,序列化是用在物件狀態,將物件狀態存入文字檔案
下次讀取文字檔案內容再把物件狀態還原

除非說能夠讀取檔案,轉成bite,存入物件,然後序列化
反序列化,將物件狀態讀出bite,再還原成檔案

好像可以....但是怎麼還原成檔案好像很難
沒頭緒

==========================================
java 圖片 binaryStream 直接存取
http://blog.xuite.net/svc.net/666/47758522

VB.NET
http://tsuozoe.pixnet.net/blog/post/19177333

沒有留言:

張貼留言