当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

C++ Builder操纵多媒体数据库

    随着计算机软、硬件技术的日益发展,对多媒体信息的处理能力不断增强,利用快速开发工具C++ Builder所具有的强大数据库开发功能,使得对多媒体数据(库)的创建、存、取、显示、播放等控制都非常容易实现。本文将以构建具有5个字段“编号、姓名、像片、声音、活动影像”的数据库为例,根据多媒体数据与数据库本身是否共同存储,介绍两种多媒体数据库处理方法,在这里称为集成法和分离法。

    集成法

    此方法是将多媒体数据直接存入数据库中,“编号”和“姓名”字段都取ftString字段类型,“像片”字段采用ftGraphic字段类型用于存放BMP文件,“声音”和“活动影像”字段均采用ftBlob字段类型(其他格式的多媒体文件均可以采用这种二进制类型存储),分别用于存放WAV和AVI文件,这样的数据库结构既可以采用C++ Builder提供的“Database Desktop”创建,也可以用下面的代码创建:

    TTable *newTable = new TTable(this);

    newTable->Active = false;

    newTable->DatabaseName = “e:\\\\mydata”;

    newTable->TableName = “example1.db”;

    newTable->TableType = ttParadox;

    //定义数据表类型

    newTable->FieldDefs->Clear();

    newTable->FieldDefs->Add(“编号”,ftString,8,false); //定义字段、类型、长度等

    newTable->FieldDefs->Add(“姓名”,ftString,8,false);

    newTable->FieldDefs->Add(“像片”,ftGraphic,0,false);

    newTable->FieldDefs->Add(“声音”,ftBlob,0,false);

    newTable->FieldDefs->Add(“数字电影”,ftBlob,0,false);

    newTable->CreateTable(); //创建数据表

    delete newTable;

    由于要编程实现往数据库中添加记录的功能,因此假定在数据库程序设计阶段数据表example1

    .db已经建好,同时假定所需要的多媒体文件均存放于e:\\mydata\\media路径之下。

    所要完成的程序的功能界面如图1所示:

    图 1 操作界面

    点击“打开数据库”按钮将打开库文件example1.db并显示原有记录的相应信息。点击“增加记录”按钮将追加新的记录,通过数据导航按钮进行记录的移动、修改等操作,在每一时刻,点击“听听声”按钮可以听到当前记录所对应的声音,点击“看看影”按钮可以看到当前记录对应的活动影像。这个应用已具备一个多媒体数据库应用系统的基本功能,以下是主要设计步骤:

    1. 组件设置

    向窗体增加一个TTable组件Table1,一个TDataSource组件DataSource1,两个TDBEdit组件DBEdit1和DBEdit2,一个TDBImage组件DBImage1,一个TDBNavigator组件DBNavigator1,一个TMediaPlayer组件MediaPlayer1,一个TOleContainer组件OleContainer1,四个TButton组件和三个TLable组件。这些组件需要设置的部分属性如下表:

    作者:
    来自:计算机世界网

    注: 表中标记“▲”的几个属性表示只有数据表example1.db已经存在,才能在设计阶段进行设置。

    2. 创建字段变量

    双击窗体的Table1组件,在弹出的 “Form1->Table1” 小窗口的空白处单击鼠标右键,选择“Add Fields...”菜单命令,然后选中“像片、声音、活动影像”三个字段,点击OK按钮。回到“Form1->Table1”小窗口,选中“图片”,将其Name属性修改为Table1BMPField。类似地将“声音”和“活动影像”的Name属性分别修改为Table1WAVField和Table1AVIField,这样就创建了对应的字段变量,利用它们就可以动态地向相应字段中存入多媒体数据了(如果数据表example1.db不存在,应该选择“New Fields...”菜单命令创建,这样做必须创建所有的字段,较为麻烦)。

    3. 代码设计

    “打开数据库”按钮的OnClick事件过程代码如下:

    void __fastcall TForm1::Button1Click(TObject *Sender)

    { Table1->DatabaseName = “e:\\\\mydata”;

    Table1->TableName = “example1.db”;

    Table1->Active = true; //打开数据表

    }

    在“增加记录”按钮的OnClick的事件过程中输入代码:

    void __fastcall TForm1::Button2Click(TObject *Sender)

    { Table1->DatabaseName = “e:\\\\mydata”;

    Table1->TableName = “example1.db”;

    Table1->Active = true;

    Table1->AppendRecord(OPENARRAY(TVarRec,(“20010521”,“刘德友”)));

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接