背景
SQL Server提供一个Image的资料型别,允许使用者把binary的资料可以存放在Table内,举凡声音、影像等,都可以很便利的来透过资料库来维护,因此建立一个Client/Server级的影像资料库并非难事。
VFP也提供一个General型别的栏位,能够让我们把OLE的资料储存至VFP的Table内,由於VFP是最佳的前端开发工具之一,所以如果您走的是Client/Server架构的话,很可能您会把属於影音的资料,全部放在後端,而由VFP在需要时,才予以读取,减少网路上的传输。
技术说明
有关於VFP如何透过ODBC与SQL Server上的资料库连结,飞狐博士假设您都已经了解,在此不再赘述。
要把binary资料经由VFP 储存至後端的SQL Server,您需要先在VFP中利用General栏位来储存您的影音资料,然後利用SQL Pass Through的方式,执行SQL Server的INSERT INTO <table> 的指令来完成。但最重要的技巧在於,您不能直接把影音档的档名直接传给SQL Server,因为SQL Server根本无法去辨识格式,您必须利用VFP中的General栏位,把资料送至後端,因为这是SQL Server与前端唯一约定的资料传输方式。以下举例说明:
在後端的SQL Server上有一个人事资料档,档名为 employee,这个档有3个栏位:
栏位名称
资料型别
说明
emp_id
int
员工编号
name
char(10)
员工姓名
photo
image
员工相片
而在前端有一个VFP的 TABLE,档名为vfp_table,其中有一个栏位名称为general_fld, 型别为 General。
示例
nSql_Handle = SQLConnect( 厎. )
=SQLEXEC( nSql_Handle , " INSERT INTO employee( emp_id , emp_name , photo ) VALUES( '003' , '飞狐博士' , ?vfp_table.general_fld)" )
请读者注意笔者是如何把general_fld的内容当做参数传送给SQL Server:
?vfp_table.general_fld
这就是本期的秘技,请会员们务必牢记。
如何把 .WAV档放入VFP的TABLE中
如果希望利用暂存档来存放 .WAV或.GIF的资料,请利用下利的技巧:
CREATE CURSOR temp_ole ( g_fld G) && 建立一个具有General栏位的cursor
APPEND BLANK
APPEND GENERAL g_fld FROM "C:\Windows95\media\mypic.gif"
责任编辑:小草