如何往一个SQL2000的数据库,写入一个长度为384字节的二进制数据呀
我试了用AppendChunk和GetChunk
但VB提示这两个属性根本不可用呀
用AddNew方法直接写入后,再直接读出的数据和原来的数据又完全不同到底是怎么回事呀
我试了用AppendChunk和GetChunk
但VB提示这两个属性根本不可用呀
用AddNew方法直接写入后,再直接读出的数据和原来的数据又完全不同到底是怎么回事呀
解决方案 »
- 送分100分:极富挑战性的问题,一次操作产生了3条重复记录
- 如何实现鼠标按住一按钮不放,则循环执行一程序;鼠标抬起,则循环程序停止?
- vb 改变Picture里字体颜色 在Picture输入 "你好吗" 第一个字为红 第二个字为绿 第二个字为蓝
- word vba如何判断查找成功
- 有那个写过地磅程序啊?急!在线等!帮看看程序!
- 在form的borderstyle属性选择2-sizable的时候,如何让窗体大小不允许改变?
- COM如何实现服务器端自动触发某个动作?
- 请高手指教,我在win2000写的代码,在win98下运行时,报“438,对象不支持此属性或方法”,怎么解决这个问题??敬待
- 怎么更改程序图标
- 没事干,散分。
- 水晶报表打印出来得是一些不可识别的字符!方块或竖线
- 怎样在文本框中自动加空格,初学急救
Public Function DatabaseToFile(ByVal DataField As ADODB.Field, ByVal vSaveAs As String, ByVal vFileExpendName As String) As String
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim lSumSize As Long, lNowSize As Long
Dim tmp() As Byte
On Error GoTo ErrHandleDatabaseToFile
If Trim(vSaveAs) = "" Then
' DatabaseToFile = GetTempFileName(vFileExpendName)
Else
DatabaseToFile = Trim(vSaveAs)
End If
fnum = FreeFile
Open (DatabaseToFile) For Binary As fnum
bytesleft = DataField.ActualSize
lSumSize = CLng(bytesleft / 8192)
Do While bytesleft
bytes = bytesleft
If bytes > 8192 Then bytes = 8192
tmp = DataField.GetChunk(bytes)
Put #fnum, , tmp
bytesleft = bytesleft - bytes
lNowSize = lNowSize + 1 Loop
Close #fnum
Exit Function
ErrHandleDatabaseToFile:
DatabaseToFile = ""
Err.Clear
End FunctionPublic Function FileToDatabase(ByVal vDataField As ADODB.Field, ByVal vFileName As String)
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim lSumSize As Long, lNowSize As Long
Dim tmp() As Byte
On Error GoTo ErrHandleFileToDatabase
fnum = FreeFile
Open vFileName For Binary As fnum
bytesleft = LOF(fnum)
lSumSize = CLng(bytesleft / 8192)
Do While bytesleft
bytes = bytesleft
If bytes > 8192 Then bytes = 8192
ReDim tmp(1 To bytes) As Byte
Get #fnum, , tmp
vDataField.AppendChunk tmp
bytesleft = bytesleft - bytes
lNowSize = lNowSize + 1
DoEvents
' RaiseEvent TransmitData(lNowSize, lSumSize, True)
Debug.Print vDataField.ActualSize
Loop
Close #fnum
Exit Function
ErrHandleFileToDatabase:
Err.Clear
End Function'窗体:
Public CN As ADODB.Connection
Public AtRs As ADODB.Recordset
Public StrCn As StringPrivate Sub Form_Load()
StrCn = "driver={SQL server};server=lbzks;database=lb;User ID=app_user;Password=user888;"
Set CN = New ADODB.Connection
CN.CommandTimeout = 30
CN.Open StrCn
Set AtRs = New ADODB.Recordset
Set AtRs.ActiveConnection = CN
AtRs.CursorType = adOpenKeyset
AtRs.LockType = adLockBatchOptimistic
End SubPrivate Sub Command1_Click()
If AtRs.State = adStateOpen Then AtRs.Close
With AtRs
.Open "select * from SYSTEMP_UP_WJ", StrCn, 1, 3
.AddNew '新增一条记录,必须
FileToDatabase AtRs!up_wj, App.Path + "\原始.jpg"
.Update
End With
End SubPrivate Sub Command2_Click() '导出
Sql = "select * FROM SYSTEMP_UP_WJ"
If AtRs.State = adStateOpen Then AtRs.Close
AtRs.Open Sql, CN, , , adCmdText
If AtRs.RecordCount > 0 Then
DatabaseToFile AtRs!up_wj, App.Path + "\导出.jpg", ""
End If
End Sub
"我试了用AppendChunk和GetChunk
但VB提示这两个属性根本不可用呀"就是这语句
vDataField.AppendChunk tmp提示"实时错误3219
该操作在内容不被允许"
怎么把字段改成Image就可以写入了
但我要存的并不是Image呀
是一个二进制数组变量来的