关于VB,access数据库在服务器上 而我想在客户端界面内修改服务器的数据库上的数据,是怎么搞的啊?
1) 因为“Set Rs = DbExecute(Sql)” 返回的记录集始终是只读的、仅向前的游标,所以不能用这种方法获得记录集去更新数据库(记录集是只读的,不可更新)。如果需要用记录集更新数据库,应该使用OPEN方法打开记录集(请使用可更新的记录集)。
至于EXECUTE方法运行insert into values 语句可以成功的原因是EXECUTE方法不依赖可更新的记录集对象而是直接将新记录插入到数据库里所致;
2) 运行insert into values 将二进制流数据保存到MDB数据库可能够呛,暂时未找到相应的解决方案(MSSQL等大型数据库可以)。
下面介绍一个使用ADO Stream对象的方法供参考,利用可更新的记录集将二进制流插入MDB数据表。这种方法我用过、没问题的。
'Test(id(文本,主键),pic(ole对象)) 数据表结构
' 引用 Microsoft ActiveX Data Objects 25 Library 及以上版本
'25版本以下不支持Stream对象
Private Sub Command0_Click()
Dim cn As New ADODBConnection
Dim rs As New ADODBRecordset
Dim strSql As String
Dim cnStr As String
Dim img As New ADODBStream
cnStr ="Provider=MicrosoftJetOLEDB40;Data Source='\\1921681100\Shared\datamdb';" '请更改为实际连接字符串
rsCursorLocation=adUseClient
cnOpen cnStr '打开连接
With img
Type = adTypeBinary '二进制模式
Open
LoadFromFile "D:\My Documents\9_064836_1jpg" ‘这里也可以引用图像控件的picture属性
End With
strSql = "select from test"
rsOpen strSql, cn, adOpenKeyset, adLockOptimistic '打开数据表
rsAddNew
rs!id = "001"
rs!pic = imgRead '存入二进制流数据
rsUpdate
rsClose
Set rs = Nothing
cnClose
Set cn = Nothing
End Sub
打开 SQL Server Management Studio,选择附加数据库就行。
不同版本的 sql server 操作方法不太一样,早期版本叫 Sql Server 企业管理器。
0条评论