跟做C/S结构没什么两样啊,(ClientDataSet1.FieldByName('Image') as TBlobField).SaveToStream(...)
解决方案 »
- 在装完XP后,有一款软件叫YZDock 是模仿苹果操作系统的工具栏吧
- ini文件 连接数据库问题
- delphi如何获得某一个进程的状态?急需!!帮忙
- 紧急求救!
- ole 容器的超难问题 !!!! 在容器中插入word 时没有"文件"的菜单项 ?? 不能设置纸型 和 打印预览 !!!
- socket初级问题
- 用socket,我如何知道服务端收到了数据,在客户端中可以删除刚才发送的数据呢?
- 请问如何把字符串型(string)转换成色彩型(tcolor)变量呢?
- 跪求:大家有没有《windows网络编程之delphi篇》这本书的光盘源代码
- 怎么从文本文件里取出其内容?
- 创建WebSnap应用程序(一)
- WinOfficer -----> 好东东!!!!!大家快来看!!!!!
但数据库中,没有保存我提交的数据,数据库使用interbase,请问什么原因??
如可以,望给个例子。
有用clientdataset1.applyupdates的但无效,
给点帮助吧!
对象中,原型如下:HRESULT AppendChunk (const _variant_t & Data );从函数原型中可以看到关键的问题是我们需把二进制数据赋值给VARIANT类型的变量,2 BLOB数据的读取对应于保存数据时我们所使用的AppendChunk函数,读取数据应该使用GetChunk函数,GetChunk的原型如下:_variant_t GetChunk (long Length );给出数据的长度后GetChunk将返回包含数据的VARIANT类型变量,然后我们可以利用SafeArrayAccessData函数得到VARIANT变量中指向数据的char *类型的指针,以方便我们的处理。Public Sub AppendChunkX()
Dim cnn1 As ADODB.Connection
Dim rstPubInfo As ADODB.Recordset
Dim strCnn As String
Dim strPubID As String
Dim strPRInfo As String
Dim lngOffset As Long
Dim lngLogoSize As Long
Dim varLogo As Variant
Dim varChunk As Variant
Const conChunkSize = 100
' 打开连接
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn
' 打开 pub_info 表。
Set rstPubInfo = New ADODB.Recordset
rstPubInfo.CursorType = adOpenKeyset
rstPubInfo.LockType = adLockOptimistic
rstPubInfo.Open "pub_info", cnn1, , , adCmdTable
' 提示复制徽标。
strMsg = "Available logos are : " & vbCr & vbCr
Do While Not rstPubInfo.EOF
strMsg = strMsg & rstPubInfo!pub_id & vbCr & _
Left(rstPubInfo!pr_info, InStr(rstPubInfo!pr_info, ",") - 1) & _
vbCr & vbCr
rstPubInfo.MoveNext
Loop
strMsg = strMsg & "Enter the ID of a logo to copy:"
strPubID = InputBox(strMsg)
' 将徽标复制到大块中的变量。
rstPubInfo.Filter = "pub_id = '" & strPubID & "'"
lngLogoSize = rstPubInfo!logo.ActualSize
Do While lngOffset < lngLogoSize
varChunk = rstPubInfo!logo.GetChunk(conChunkSize)
varLogo = varLogo & varChunk
lngOffset = lngOffset + conChunkSize
Loop
' 从用户得到数据。
strPubID = Trim(InputBox("Enter a new pub ID:"))
strPRInfo = Trim(InputBox("Enter descriptive text:"))
' 添加新记录,将徽标复制到大块中。
rstPubInfo.AddNew
rstPubInfo!pub_id = strPubID
rstPubInfo!pr_info = strPRInfo
lngOffset = 0 ' 重置位移。
Do While lngOffset < lngLogoSize
varChunk = LeftB(RightB(varLogo, lngLogoSize - lngOffset), _
conChunkSize)
rstPubInfo!logo.AppendChunk varChunk
lngOffset = lngOffset + conChunkSize
Loop
rstPubInfo.Update
' 显示新添加的数据。
MsgBox "New record: " & rstPubInfo!pub_id & vbCr & _
"Description: " & rstPubInfo!pr_info & vbCr & _
"Logo size: " & rstPubInfo!logo.ActualSize
' 删除新记录,因为这只是演示。
rstPubInfo.Requery
cnn1.Execute "DELETE FROM pub_info " & _
"WHERE pub_id = '" & strPubID & "'"
rstPubInfo.Close
cnn1.Close End Sub
另外好像interbase的bolb字段不一般,无法使用TDBImage控件