0
vb.net 및 MS Access에서 응용 프로그램을 개발 중입니다. 처음에는 몇 시간 후에 db에서 pdf 파일을 열려면 코드를 함께 사용하는 몇 가지 소스를 사용했습니다. 코드가 작동합니다. 그러나 응용 프로그램에서 pdf를 점심을 먹으면 루트 폴더에 pdf 파일이 만들어집니다. 이제는 DB에서 바이너리 (OLEObjects)와 루트 폴더에 있습니다. 나는 한 곳에서만 필요합니다.VB Access에서 PDF 파일을 엽니 다.
Dim strSqll As String
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\BCInventory.accdb;Persist Security Info=False;")
conn.Open()
strSqll = "Select filename from pdf WHERE PR = '" & pr & "' AND Year = '" & year & "'"
Dim sqlCmdd As New OleDbCommand(strSqll, conn)
Dim r As OleDb.OleDbDataReader = sqlCmdd.ExecuteReader()
If Not r.HasRows Then Exit Sub
Do While r.Read()
fname = r.GetString(0)
Loop
conn.Close()
Try
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\BCInventory.accdb;Persist Security Info=False;")
con.Open()
Dim strSql As String = "Select File from pdf WHERE PR = '" & pr & "' AND Year = '" & year & "' AND fileType='" & ftype & "'"
Dim sqlCmd As New OleDbCommand(strSql, con)
Dim fileData As Byte() = DirectCast(sqlCmd.ExecuteScalar(), Byte())
Dim sTempFileName As String = Application.StartupPath & "\Purchase Orders scans" & "\" & fname
If Not fileData Is Nothing Then
Using fs As New FileStream(fname, FileMode.OpenOrCreate, FileAccess.Write)
fs.Write(fileData, 0, fileData.Length)
fs.Flush()
fs.Close()
End Using
ShellEx(Me.Handle, "Open", fname, "", "", 10)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
당신이 요구하는 무엇 : 다음 코드는? 응용 프로그램에 파일을 열라고 말하면 그 응용 프로그램은 PDF 파일을 열 수 있지만 데이터베이스에서는 아무것도 열리지 않을 가능성이 높습니다 ... 그래서 정확히 무엇을하고 싶습니까? 파일을 데이터베이스의 임시 폴더로 가져 와서 자동으로 정리할 수 없거나 더 이상 사용하지 않을 때 정리할 수 없습니까? –
내가 명확하지 않으면 미안합니다. 나는 내 DB 안에 pdf를 저장하는 것을 멈추고 싶었습니다. 대신에 모든 PDF 파일을 한 폴더에두고 싶었고 db에 그 폴더에 대한 경로 만 갖고 싶었습니다. 나는 일하도록했다. – Victor