PALM开发教程-第五章 数据库(转)

Palm OS的所有内容在其存储器中都表现为数据库形式,下面我们就开始学习创建和使用数据库。我们将继续编写Contacts程序,把它写入一个数据库。

删除工作
为准备向Contacts添加一个数据库,首先应删除以前的示范语句。

备份Contacts程序
首先应备份当前的Contacts程序。我将它命名为Contacts CH.4。

步骤如下:
1. 运行Windows浏览器;
2. 找到并选中Contacts工程文件夹;
3. 按下CTRL-C复制文件夹;
4. 单击你想备份到的文件夹;
5. 按下CTRL-V将Contacts工程文件夹粘贴;
6. 单击Contacts的名字,将其改名为Contact CH.4。

从资源文件将原来的资源删除
把我们不再用到的一些资源从工程中删除。步骤如下:
1. 打开资源构造器;
2. 打开Contacts工程src文件夹中的Contacts.rsrc文件;
3. 选中FieldInit字符串资源,按Delect删除;
4. 关闭并保存Contacts.rsrc。
删除代码

在删掉资源后,我们要删除和重新组织代码使程序正常运行。

步骤如下:
1. 运行Code Warrior集成开发环境;
2. 从Contacts工程文件夹打开Contacts.mcp;
3. 从PilotMain()的刚开始处中删除下列代码:

// CH.3 Our field memory handle
static Handle htext; // CH.3 Handle to the text in our edit field
#define HTEXT_SIZE 81 // CH.3 Size of our edit field

4. 从PilotMain()接近顶部的地方删除下列代码:

// CH.3 Get the initialization string resource handle
hsrc = DmGetResource( strRsc, FieldInitString );

// CH.3 Lock the resource, get the pointer
psrc = MemHandleLock( hsrc );

// CH.3 Allocate our field chunk
htext = MemHandleNew( HTEXT_SIZE );
if( htext == NULL )
return( 0 );

// CH.3 Lock the memory, get the pointer
ptext = MemHandleLock( htext );

// CH.3 Initialize it
StrCopy( ptext, psrc );

// CH.3 Unlock the field's memory
MemHandleUnlock( htext );

// CH.3 Unlock the resource's memory
MemHandleUnlock( hsrc );

// CH.3 Release the string resource
DmReleaseResource( hsrc );

5. 从contactDetailEventHandler()中将frmOPenEvent事件处理部分删掉下列代码:

// CH.3 Get the index of our field
index = FrmGetObjectIndex( form, ContactDetailFirstNameField );

// CH.3 Get the pointer to our field
field = FrmGetObjectPtr( form, index );

// CH.3 Set the editable text
FldSetTextHandle( field, htext );

// CH.2 Draw the form
FrmDrawForm( form );

// CH.3 Set the focus to our field
FrmSetFocus( form, index );

6. 从contactDetailEventHandler()中删除frmCloseEvent;
7. 从PilotMain()删除MemHandleFree()的函数调用。

添加数据库
现在开始添加一个数据库。首先,利用资源构造器向Contact Detail窗体添加一些按钮用来浏览数据库记录;再添加一个帮助信息和新的警告;然后添加可创建和修改数据库的程序代码。

数据库技术和术语
数据库有很多种类型。也就存在与它们相关联的容易混淆的术语。我将在这一部分探讨一下基本术语并解释我们将要接触的其它术语。

数据库中最基本的单元叫记录,有的地方也叫“行”(raw)。一个记录通常有一些数据组成:例如,一个人的姓名、地址和电话号码等。每个数据可叫字段,也被称为“表元”或“列”。通常“列”是指在所有记录中提供相似信息的数据,例如:数据库中所有的“姓”。

你可以把数据库看成是由行和列组成的信息表。每一行代表一个单独的条目。每一行代表和所有条目相关联的一种特殊类型的数据集合。例如:你可以用数据库的每一行代表一个人。在这种情况下,列可能为所有人的姓和名。如果行代表约会,那么列可代表约会时间、约会时间等。

一般情况下,你一次只能查看数据库的一条记录。正在被你查看的行一般叫“游标”(cursor)。Palm OS称之为“索引”(index)。在数据库中一行行的移动被叫做“浏览”(navigation)。

数据库一般分为平面(flat-file)数据库和关系数据库两种。平面数据库是由一个单独的表组成。Palm OS就使用这种简单的数据库类型。关系数据库是由许多不同的表组成,并且它们之间可通过不同的方式相联系。现在绝大部分的数据库为关系数据库。在一些Palm OS程序中,你可以通过建立一些平面数据库,让它们像关系数据库一样的工作。

数据库可根据你提供的限制查询语句为你提供它的一个子集。这就像你问数据库一个问题然后数据库给你想要的答案一样。这种方式在数据库中叫做“查询”(query)。通过查询得到的行叫结果集(result set)或答案集(solution set)。

Palm OS中的数据库要比一般的平面数据库要灵活的多,因为它的记录就是内存中的存储块。你可根据自己的需要任意解释它们。结果,你就有了这样一个数据库:它里面的记录有着不同的格式和长度。

Contacts.rsrc文件内容的添加

现在我们就通过编制程序来看看数据库如何工作。首先,为Contact Detail窗体创建添加(add)和删除(delete)记录以及浏览(navigate)数据库的按钮:

1. 打开资源构造器;
2. 打开Contacts工程中src文件夹中的Contacts.rsrc文件;
3. 选中Contact Detail窗体双击打开;
4. 选中Window | Catalog生成Catalog窗口;
5. 拖动三个标签到Contact Detail窗体上。根据下表设置它们的属性:

Left Origin Top Origin Text
20 15 First Name
21 30 Last Name
2 45 Phone Number

注意:我产生Left Origin Numbers的方法是:首先按下shift同时单击左键,然后从构造器的菜单上再选择Arrange | Align Right Edge。

6.拖动至少两个以上的输入框到Contact Detail窗体上。根据下表设置它们的属性:

Object Identifier LeftOrigin TopOrigin Width MaxCharacters Auto Shift
FirstName 80 15 79 15 Yes
LastName 80 30 79 15 Yes
PhoneNumer 80 45 79 15 Yes

7.拖动六个按钮到Contact Detail窗体上。根据下表设置它们的属性:
ObjectIdentifier LeftOrigin TopOrigin Width MaxCharacters
First 1 130 28 First
Prev 45 130 28 Prev
Next 88 130 28 Next
Last 131 130 28 Last
Delete 103 146 36 Delete
New 53 146 36 New

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126908/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-126908/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值