文章标题 如何使用VFP 和 ADO Stream Object 获取二进制数据 作品来源 DBWIN 转贴自: BOE 本文信息应用于: · Microsoft Visual FoxPro for Windows, version 6.0 · Microsoft SQL Server version 7.0 · ActiveX Data Objects (ADO), version 2.5 概述 可以用 ActiveX Data Objects (ADO) Stream 对象和记录集,来使 Visual FoxPro 具有处理来自 SQL Server 的 Binary Large Object (BLOB) 数据的能力. BLOB 是一种包含图形,声音或编译后的代码的字段数据类型. 在 一般应用程序中, 该数据是"无格式的".在 SQL Server 中, 该数据是 "Image" 数据类型. 更多信息 以下示例代码假定你拥有访问 SQL Server 的权限,pub_info 表在 SQL Server 7.0 Pubs 示例数据库中. 在 Visual FoxPro 中创建一个新程序.粘贴以下代码到新程序中: CLEAR CLEAR ALL RELEASE ALL #DEFINE LOC_SQLSERVERNAME "MYSERVER" #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.CLOSE loConnection.CLOSE loADOStream.CLOSE ERASE CURDIR() "BLOB.gif" 根据你的本地设置,修改三个 #DEFINE 语句中的参数,然后保存并运行程序. 图形文件将显示在 Visual FoxPro 桌面上.
Tags:获取 使用 如何 数据 对象 Server SQL Visual FoxPro
|
|