SELECT :sno, :sname, :ssex,
WSET(BULK ’C:resume1.txt’, SINGLE_NCLOB),
OPENROWSET(BULK ’C:photo1.jpg’, SINGLE_BLOB);
//一种大数据块及图像存储的解决方案
EXEC SQL COMMIT TRANSACTION;
EXEC SQL DISCONNECT ALL;
}
2.3 预编译
C语言编译程序不能识别应用程序中的SQL语句,需要经过预处理程序将其转换成C语句。经过嵌入式SQL的预编译之后,原有的嵌入式SQL会被转换成一系列函数调用。因此,系统还提供一些列函数库,以确保能够把代码中的函数调用与对应的实现链接起来。SQL Server的预处理程序是nsqlprep.exe。通过在操作系统命令窗口运行命令cd c:program filesMICroSOFt SQL ServerMSSQLBinn,进入到Binn文件夹,调用预编译程序nsqlprep.exe程序,执行nsqlprep Demo2,如果成功就会将Demo2.sqc文件预编译成Demo2.c。接着运行主语言编译程序VC++,打开Demo2.c进行编译,VC++会提示要建立工程,点击“是”建立工程文件。还需在工程/设置/link中的对象/库模块中添加SQLakw32.lib和Caw32.lib才能够正确链接,最后生成目标程序和可执行文件。
当一个程序既要访问数据库,又要处理数据时,把SQL语言嵌入到宿主语言中,将SQL语言访问数据库的功能和宿主语言的数据处理功能相结合是解决该问题的有效途径。图像处理作为一种信息表达手段已被人们所熟悉,在数据库信息管理系统的开发中[5]需要用到图像等数据时,将有关信息与指定的图像对应,无疑对图像数据处理的科研、生产和管理等部门有着重要的实用参考价值。因此,在嵌入式SQL中用数据库管理系统的预编译器技术,无限利用高级语言通过数据库管理系统的接口存取和检索数据,来提高对数据库操作的效率提高。