用PB开发多媒体数据库管理系统

(加入日期:2001-6-9)

【保存文章至硬盘】【打印文章】【字体:大中 小】

分享到: 0
图像、声音、数字视频是多媒体的基本要素,目前多媒体数据库正得到是益广泛的应用。例如:桂林市开通的交互式有线电视实时点歌系统,即人们可以用电话机的按键点歌,并且同时在电视上看到自己正在操纵的菜单,选中歌曲后电视立即自动播放MTV,不需旁人帮助,这是网络多媒体数据库的具体应用。用PowerBuilder开发应用程序时,您完全可以把多媒体数据集成到应用程序中,使您的应用程序具备多媒体录制,查询播放等众多功能。显然,多媒体将进一步提高应用程序的层次,并且给用户一种身临其境的感觉。

  怎样用PowerBuilder创建并展示多媒体数据库呢?它可分为两部分:

  1. 怎样将图象、声音、动画存入数据库

  2. 查询系统的制作.

  下面以PowerBuilder6.5和SQL Anywhere为例。让我们快速制作一个简单的查询系统。制作婚姻介绍系统,查询到符合条件的人后,显示该人的人事档案卡上有个人的照片,要求双击个人照片,能调用Acdsee展示该照片(顾客能任意放大、缩小欣赏照片);或者双击该个人档案某处放映一段该个人档案的个人生活录相,个人喜欢的音乐等.

  一.怎样将图象、声音、动画存入数据库

  首先要有一个包含Blob数据类型的表,,然后利用Bb数据窗口的"OLE database Blob"(OLE数据库二进制大对象),可以轻易地把图片等多媒体数据存入数据库或展示在屏幕上。

  步骤如下:

  1.建立一个表aaa,内含两个字段,记录号和相片,一个字段取名为ID,另一个字段名为Pic,类型分别为char和Long binary,ID为主键。具体操作步骤为:进入Database画笔来建立此表,ID字段取type 为char,不许为空,即Null为No,Pic字段type为Long binary,可为空,即Null为Yes(重要)。将英文标题头改成中文,即将id字段的Header内的"id"改为"记录号",Label的内容改为"记录号:",同理将pic字段的改为"相片"和"相片:"按Close图标,保存的文件名填aaa,按Table Properties图标,按Primary key,并点选ID为主键,按Close图标关闭Database画笔。

  注意:在这一步骤里不要输入数据,而要在后面的数据窗口里,按预览图标输入数据。

  Pic字段的数据类型即所谓Blob类型,其数据类型在不同的DBMS中有一定的差别:在SQL Anywhere 中是Long binary;在SQL Server中是Image。

  2.建立一个新的应用程序。具体操作步骤为:按Application图标,再按New图标,文件名填test,按保存,Application填test,按OK,出现一"Would you like……"的对话框,问是否要应用程序模板,按"是",为简化制作步骤,要模板。

  3.建立数据窗口并准备输入数据。步骤为:按DataWindow图标,在"Select datawindow"对话框中选New,在New Datawindow对话框中选SQL Slect和Freeform,即SQL 选择的数据源,自由格式的风格。按OK,在Select talbe对话框中选中aaa表,按Open。点选ID列,使ID出现在Select list的右边,在窗口下方按Where按钮,按Colume,并在Cloume的下拉条中选中"aaa"."id",在Valua的一栏中填入 :temp,注意,这里的temp前面有一冒号 按窗口上方的Desion菜单,选Retriveal Arguments,在Name一栏填temp,注意,这里的temp前面没有冒号,type一栏选String(注意),按OK。

  规定:SQL语句可以嵌入到PowerScript语言当中,只不过每一个SQL语句必须以分号结尾,而且在SQL语句中如果要引用PowerScript变量,则必须对这些变量赋予一个前缀--冒号:而PowerScript语句的变量不要加冒号,注意区分。

  4.用数据窗口的预览方式输入数据。具体操作步骤为:按Desion菜单,选Data Source使Data Source前面不打钩,从Objects菜单中选择OLE Database Blob项,然后在设计窗口中适当位置点鼠标左键,此时出现Database Blob object对话框。逐渐填写对话窗:

  ClientClass:填入DataWindow,可选。

  ClientName:填入当前DataWindow的名字,可选。

  Table:选择aaa表。

  Large Binary/Text Columns:选择pic字段。

  KeyClause:选id=:id,用于构造where子句,即where id=:id,用于定位相位记录。

  File template:浏览选择并填入一个bmp文件,可不填。

  OLE Class:通过下拉菜单选择Pbrush画笔程序。

  Client Name Expression:填入某一字符串表达式,当OLEServer运行时,显示在其标题处,如填写入id+".bmp",按OK键。

  单击Positions标签,选中"Resizable",单击General标签,在Border列表框中选择"Resize"如此选择这两个属性后,程序运行时,用户能够通过拖拽改变图片的大小,单击OK关闭对话框。

  此时,PB关闭该对话窗,并回到DataWindow的设计窗口,OLE字段以一小方框的形式显示出来。

  单击Preview预览图标,在跳出的对话框中给temp的值填1,点Insert Row 图标,在表中添加一行,填入id后,双击方框,打开画图程序,这时可以通过绘制,复制等手段制作图片,制作好后,单击文件菜单中的"退出并返回到…"关闭画图程序,再次单击预鉴图标,系统提示"save……",将数据窗口取名为aaa,选择"是"将结果保存到表中。

  同理:若想将动画存入数据库则另加一字段,将音乐存入数据库则另加一字段。

  二. 查询系统的制作

  1. 制作从键盘输入记录号,可查询到该人的档案记录。

  ①制作查询窗口。步骤为:鼠标点按Window图标,新建一窗口,在窗口中,添加一个DataWindow控件,在DataWindow控件上按鼠标右键,选择并单击Properties快捷菜单项,在在Datawindow object name旁按Browse按钮,选择装入前面制作的aaa数据窗口,调整好窗口的大小,再在窗口上放一SingleLineEdit控件,和一CommandButton按钮控件,点中按钮控件并按右键选择Properties ,将其显示文本修改为"查询",按钮名称仍为cb_1,点中按钮控件并按右键选择Script…,输入以下脚本

  dw_1.settransobject(sqlca)

  dw_1.retrieve(sle_1.text)

  关闭并保存,按Save图标保存该窗口,窗口取名为aaa,

  ②将查询窗口连接入test应用程序内。点按Application图标,出现test应用程序,双击test,出现名为w_genapp_frame的窗口图标,这是应用程序为我们提供的主窗口的名字,点按w_genapp_frame不放按右键选edit,出现该主窗口,将一按钮控件放入该窗口,按钮显示的文本可改为"唯一查询",也可省略不改,点中该按钮控件并按右键选择Script…,输入:open(aaa),保存。点按Application图标,再按script图标,出现应用程序的自动生成的主体脚本,部分内容如下,它的任务是将数据库初始化,相当于win.ini。假若不要应用程序的模板,则下面的脚本需自己输入。而使用模板后,现在我们只需将//connect;前面的注释号"//"符号删除即可。除省事外还避免了因为排版引起的下面的程序格式错误。(本人经常因为书中个别字母印刷错,或排版引起的程序格式错误造成程序无法运行而痛心不已。)

  sqlca.DBMS = ProfileString (ls_startupfile, "database", "dbms", "")

  sqlca.database = ProfileString (ls_startupfile, "database", "database", "")

  sqlca.userid = ProfileString (ls_startupfile, "database", "userid", "")

  sqlca.dbpass = ProfileString (ls_startupfile, "database", "dbpass", "")

  sqlca.logid = ProfileString (ls_startupfile, "database", "logid", "")

  sqlca.logpass = ProfileString (ls_startupfile, "database", "LogPassWord", "")

  sqlca.servername = ProfileString (ls_startupfile, "database", "servername", "")

  sqlca.dbparm = ProfileString (ls_startupfile, "database", "dbparm", "")

  connect;

  现在按Run图标运行该程序,结果如下图。为简化程序,我们只加入了多媒体中的图片字段,成功后,读者可自已增加动画,声音字段。

  讨论:假若多媒体的字段和数据个数比较少,也可用变量和函数来解决。如:

  temp2=temp+".bmp"

  p_1.picturename=temp2

  ole_1.insertfile("sample.avi")

  run("c:\acdsee.exe c:\aa.bmp",normal!)

  这些都是很有用的函数,但数据多而杂时,它们就会显得力不从心了,因为使用它们时,多媒体数据并没有内置于数据库之中,也就是说数据库内并没有它们的字段,想想看,假若数据库的所有字段都用变量来代替的话,我想任何人看了都会头大!

用PB开发多媒体数据库管理系统相关推荐

  1. c语言vs开发小型数据库,用C语言开发小型数据库管理系统代码

    注意是代码 #include #include typedef struct count{ /*保存记录条数结构体*/ char name[10]; int num; }count; typedef ...

  2. 计算机毕业设计Java多媒体素材管理系统(源码+系统+mysql数据库+lW文档)

    计算机毕业设计Java多媒体素材管理系统(源码+系统+mysql数据库+lW文档) 计算机毕业设计Java多媒体素材管理系统(源码+系统+mysql数据库+lW文档) 本源码技术栈: 项目架构:B/S ...

  3. 【数据库实验】《小型MIS的开发》PyQt5 开发 民航票务管理系统

    PyQt5 开发 民航票务管理系统 为什么要拿 Python 做呢? 学习一天的知识点 开发环境 与 项目整体结构 数据库建表 用户表的 SQL 航班信息表的 SQL 界面代码 主界面:hello.p ...

  4. 【数据库实验】《小型MIS的开发》— JavaFx 开发 民航票务管理系统

    <小型MIS的开发> 需求描述 数据库建表 用户表的 SQL 航班信息表的 SQL 项目演示 GitHub 网址获取源代码 比较重要的知识点 JavaFx 中 spring 工厂如何创建 ...

  5. JSP危险化学品管理系统myeclipse开发mysql数据库bs框架java编程jdbc详细设计

    一.源码特点      JSP危险化学品管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8. ...

  6. 浙江师范大学实验室开放项目《应用水晶报表快速开发数据库管理系统》学生名单登记表(给学分名单)

    浙江师范大学实验室开放项目学生名单登记表 项目名称 应用水晶报表快速开发数据库管理系统 所在实验室 公共基础实验室 实验类型 □综合设计  □科学研究  □自拟课题  □计算机应用  □人文素质 指导 ...

  7. JSP房地产门户管理系统myeclipse开发mysql数据库BS模式java编程网页结构详细设计

    一.源码特点      JSP 房地产门户管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8 ...

  8. JSP水电费管理系统myeclipse开发mysql数据库web结构java编程

    一.源码特点   JSP水电费管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发. 下载地址: JSP水电费管理系 ...

  9. JSP项目进度管理系统myeclipse开发sql数据库BS模式java编程网页结构

    一.源码特点      JSP 项目进度管理系统是一套完善的WEB设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发.开发环境为TOMCAT7 ...

最新文章

  1. html引入php文件中的函数,在b2core框架和simple_html_dom.php文件里面都有一个load()函数...
  2. MFC中修改程序图标
  3. 正则表达式基础知识及应用(用于个人学习以及回顾)
  4. 腾讯云Centos升级python2到python3
  5. volley imagerequest
  6. 忽略字母大小写情况下统计字符出现的次数
  7. 李炎恢php学习视频教程下载
  8. linux内核剖析之traps.c
  9. 如何安装python380_python3.8下载及安装步骤详解
  10. n2n(Pear-to-pear) 内网穿透
  11. efs android 分区 img,选择别人efs文件包都是.img格式的,怎么添加你们的.efs文? 爱问知识人...
  12. 基于单片机的液体点滴速度监控设计
  13. 服务器网卡芯片b,英特尔Intel 82599ES芯片万兆网卡E10G42BTDA 通过高可靠数据中心网络改造赢得信...
  14. 如何在ps中将图片素描化
  15. 计算机专业相关知识零碎记录
  16. Laravel 如何清理 config 缓存
  17. 基于空间平滑MUSIC算法的相干信号DOA估计(1)
  18. R语言统计入门第四章描述性统计和图形——4.6表格的图形显示
  19. AngularJs with Webpackv1 升級到 Webpack4
  20. BPlay1.0系列(6:视频播放)

热门文章

  1. 解决G13无法刷机的问题。
  2. window2008系统下载
  3. kdzd电气强度测试仪
  4. 吃豆人游戏-第12届蓝桥杯Scratch选拔赛真题精选
  5. 面试时您该做的事情 (一)
  6. 如何成为一名合格的客服中心班组长
  7. 【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】
  8. 人和机器的视觉体验:为什么人工智能
  9. matlab中的bar3()函数的x-y轴的区间取值方法
  10. 请大声说出我是猪 整蛊代码_大声笑的完整形式是什么?