[转]Windows Mobile 上使用Sybase Anywhere(2)
导读文章:《WM上使用Sybase Anywhere(1)》
在上一篇文章讲述了,如何在WM系统中安装Sybase Anywhere 11,并测试数据库是否可用,是否正常。
那该篇文章讲主要叙述,如何在WM系统中来操作其数据库。
当我们在WM系统中安装完后,将会有一个demo.db的数据库实例对象,那我们就来使用该实例数据库。
那首先我们先要看看这个数据库中有些什么内容。
如何访问WM系统的数据库表呢?将WM与系统连接,并将该数据库拷贝下。
然后启动Sybase Central,在菜单“连接”->“使用SQL Anywhere 11连接”
在连接对话框的标识中,输入用户名和密码。
在数据库标签页,选择一个数据库文件。或者你也可以自己启动一个数据库实例的服务。
最后按下一步,Sybase Central会自动启动一个数据库实例服务。下面就是该数据库中已有的内容及可以实现的操作。
表、视图、索引、触发器、过程和函数,这些原先的数据库中都已有了内容。这就是Sybase Anywhere 11数据库所能提供的那些,是不是比SQL CE3.5还要强大许多。
废话不多说了,前面介绍了如何查看数据库实例中的具体内容,那下面我讲介绍如何使用.net cf来访问Sybase Anywhere 11数据库。
创建一个工程,添加iAnywhere.Data.SQLAnywhere引用,该DLL中包含了连接数据库的以下几个关键对象。
SAConnection:数据库连接对象。
SACommend:数据库命令执行对象。
SADataReader:数据游标操作对象。
SADataAdapter:数据填充/适配器对象。
SATransaction:数据库事务对象。
SAParamter:数据库参数对象。
从这些对象的命名中,我们可以很清楚的看出,和.net中的那些数据操作对象一致,就命名前多了SA。绝大多数的方法都一致。只多了一些更好的属性及方法。
Demo演示中,将从数据库中取道所有数据,然后当选择一行数据时,可以弹出其所有的描述数据。
运行Demo。
当点击Load Data时,出现该对话框。这时何故??
原因分析:因为Sybase Anywhere的数据连接方式是采用ODBC方式。其实,在连接字符串中所填写的是其DSN的名称。当连接打开操作执行时,是先去找DSN文件,然后根据DSN文件所配置的信息来使用ODBC来连接。
DataSource=SQL Anywhere 11 Demo 表示DSN名
那DSN文件中到底是何信息呢?我们看一下Sybase Anywhere 11所提供的这个数据库实例的DSN吧。
[ODBC]
uid=dba
pwd=sql
enginename=demo
databasename=demo
databasefile=\My Documents\demo.db
start=\Storage Card\Program Files\SQLAny11\dbsrv11.exe
上面就是从DSN中拷贝出来的信息。
uid表示用户名
pwd表示密码
enginename表示连接引擎名
databasename表示数据库实例名
databasefile表示目前数据库所在的位置
start表示用Sybase Anywhere 11提供的dbsrv11.exe程序启动该数据库。
该文件就是启动数据库服务的应用程序,当数据库启动后,SAConnection才能通过ODBC来连接到数据库。
这就是为何会有该对话框出现,该对话框中所描述的信息也就告诉你它在干什么了。
SADataReader提供了FieldCount(查询得到结果集的列的合计数)及Depth(总共有多少行数据)。
在使用select查询时,不支持表(nolock),该语句只在SQL Server中适用。
以上就是如何在WM上操作Sybase Anywhere 11数据库的一个大概的介绍。
代码下载:SybaseDemo.rar
运行环境:VS2008 + WM6.0 + .net cf3.5 + Sybase Anywhere 11
Author:AppleSeeker(冯峰)
Date:2009-04-14
转自:http://www.cnblogs.com/appleseeker/archive/2009/04/14/1436001.html