« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
暂无公告... |
Blog信息 |
blog名称:VFP及Sql Server拙笔 日志总数:46 评论数量:107 留言数量:0 访问次数:432946 建立时间:2005年5月12日 |

| |
[VFP与SQL]如何用 VFP 和 ADO Stream 对象来获取二进制数据 文章收藏, 网上资源, 读书笔记, 日后处理, 软件技术
老瓷 发表于 2005/11/28 8:37:07 |
概述Visual FoxPro 具有用 ActiveX Data Objects (ADO) Stream 对象和记录集来处理 SQL Server 中的 Binary Large Object (BLOB) 数据的能力. BLOB 是一种包含二进制数如图形, 声音或编译后的代码的数据列类型. 从应用程序的观点看, 这些数据是 "无定型的". 在 SQL Server, 这些数据通常是大家知道的 "Image" 数据类型.
更多信息以下示例代码假定你具有访问 Microsoft SQL Server 所必需的特权, 而且在你的 SQL Server 7.0 Pubs 示例数据库中有 pub_info 表.
在 Visual FoxPro 中创建一个新程序. 粘贴以下代码到该新程序中: CLEARCLEAR ALLRELEASE ALL#DEFINE LOC_SQLSERVERNAME "Server"#DEFINE LOC_SQLUID "sa"#DEFINE LOC_SQL_PWD ""
LOCAL lcConnStr, lcSQL, loConnection, lcImageName, ;loRecordSet, loADOStream
lcConnStr="Provider=SQLOLEDB;" +;"Data Source=" + LOC_SQLSERVERNAME + ";" +;"Initial Catalog=PUBS;" +;"UID=" + LOC_SQLUID + ";" +;"Pwd=" + LOC_SQL_PWD
lcSQL = "SELECT * FROM pub_info"
*!* 创建对象.loConnection = CREATEOBJECT("ADODB.Connection")loRecordSet = CREATEOBJECT("ADODB.Recordset")loADOStream = CREATEOBJECT("ADODB.Stream")
*!* 打开连接.loConnection.OPEN(lcConnStr)loRecordSet.OPEN(lcSQL,loConnection,2,3)
*!* 设置 Stream 对象属性.loADOStream.TYPE = 1 && 1=二进制数据, 2=文本数据.loADOStream.OPEN
loADOStream.WRITE(loRecordSet.FIELDS("logo")) && 传递数据到 stream 对象.lcImageName = "BLOB.gif" && 设置本地文件名.loADOStream.SaveToFile(lcImageName,2) && 保存 stream 对象到一个文件.@1,1 SAY CURDIR() + lcImageName BITMAP && 显示图形文件
*!* 关闭连接.loRecordSet.CLOSEloConnection.CLOSEloADOStream.CLOSE
ERASE CURDIR() + "BLOB.gif"
修改三个 #DEFINE 语句来反映你的本地设置, 然后保存并运行该程序. 在 Visual FoxPro 桌面上观察图象. |
|
|