); ?> 望高人指点evc连接sqlce数据库!!!(页 1) - 移动设备软件开发版 - 口袋数码论坛 GPS PocketPC Palm Symbian PDA发烧友 pdafans.com - Powered by Discuz! Archiver

口袋数码论坛's Archiver

bigbone1 发表于 2006-12-11 21:22

望高人指点evc连接sqlce数据库!!!

各位兄弟,我最近在做毕业设计是关于pda开发的,使用的工具是evc4.0+sqlce2.0+ppc开发,现在大概的界面都做完,就是连接数据库一直连不上,希望哪位懂这方面的人或成功连接过的指导谢谢!!!
网上有人说可以用adoce3.1连接但是试拉n遍都没有成功,用oledb连接对多张表查询不好处理,望高人指点!!!!!!
:( :( :( :( :) :) :) :)

kuronca 发表于 2006-12-13 11:12

还有一种就是用oledb做, 不过比较复杂

bigbone1 发表于 2006-12-13 15:36

用oledb是能够实现但是对一张表操作但是对多张表操作就不是那么的容易,楼上的有没有操作过多张表??
谢谢能回帖!!!!!

kuronca 发表于 2006-12-14 09:50

操作多张表是什么意思?怎么操作?我猜能不能用sql语句实现

bigbone1 发表于 2006-12-14 14:45

我能够对数据库中只有一张表进行操作,并且成功了,在oledb中,好象只能对单一一张表操作,对每一张表都要定义一个类.不知道能不能对多张表操作,即象在sql中执行"SELECT * FROM  A,B WHERE A.a=B.b"操作,我主要是实现数据库的查询,,请问楼上遇到过没有,有的话,可以给我发个例子吗?谢谢!!!!
:) :) :)

kuronca 发表于 2006-12-14 15:34

应该可以的, 我的做法是用sql语句执行后 得到一个IRowset接口, 然后从接口里面读数据!
sqlce应该支持跨表查询!我觉得每个表都写个类, 不太好!你最好写一个能够解析IRowset接口数据的类, 不管是通过IOpenRowset还是ICommand得到的IRowset都能解析的

bigbone1 发表于 2006-12-14 20:08

非常感谢帮我解答该问题,你有没有例子,能给我个例子吗?我是做毕业设计,又要去找工作,如果自己写的话时间就比较长.
我的邮箱地址是[email]bigbone123@163.com[/email],thank for very much!!!!

ralfak 发表于 2007-1-15 17:18

[quote]原帖由 [i]kuronca[/i] 于 2006-12-14 15:34 发表
应该可以的, 我的做法是用sql语句执行后 得到一个IRowset接口, 然后从接口里面读数据!
sqlce应该支持跨表查询!我觉得每个表都写个类, 不太好!你最好写一个能够解析IRowset接口数据的类, 不管是通过IOpe ... [/quote]

你这段怎么理解
IROWSET接口是用SQL命令也就是SetCommandText和Execute方法得到的吗
我看MSDN怎么没有看到讲这个东西
如何做可以详细的说一下吗

NorthWindOledb那个例程LoadEmployeeInfo方法里面有个bug
        pIRowset->ReleaseRows(1, prghRows, NULL, NULL, NULL);
释放行集时返回的hr不是0
这样就无法多次GetNextRow
每次seek后只能获得一个数据
我看了很久MSDN都没找到解决办法

kuronca 发表于 2007-1-16 11:23

IROWSET接口是用SQL命令也就是SetCommandText和Execute方法得到的吗?

是的, 自己想要得到的IRowset的列名应该都是知道的,建一个列名数组, 传进去就可以解析数据的!!如果还不明白多看看关于读取数据的操作,我也只是把那些操作封装拉一下而已

ralfak 发表于 2007-1-16 17:47

回复 #9 kuronca 的帖子

谢啦,在MSDN上找到了这一段
我有一个问题
我已经获取了一个IROWSET
通过
        hr = pIRowsetIndex->SetRange(hAccessor, 1, pData,1,pEndData,DBRANGE_EXCLUSIVESTART |  DBRANGE_EXCLUSIVEEND );
获得的
查询后有多条记录
但sqlMOBILE一次只能取一条
于是我
hr = pIRowset->GetNextRows(DB_NULL_HCHAPTER, 0, 1, &cRowsObtained, &prghRows);

然后
        hr = pIRowset->GetData(prghRows[0], hAccessor, pData);

然后释放
[color=Red]        hr=        pIRowset->ReleaseRows(1, prghRows, NULL, NULL, NULL);[/color]
释放时出错hr返回unexpect error
然后我想再获取下一条记录就不行了
hr = pIRowset->GetNextRows(DB_NULL_HCHAPTER, 0, 1, &cRowsObtained, &prghRows);
只能重新查询

这样就很费时了
你有什么办法解决吗
这一段代码是northwindoledb例程里面的
loademployerinfo 方法里面

[[i] 本帖最后由 ralfak 于 2007-1-16 18:36 编辑 [/i]]

flyingeagle23 发表于 2007-3-25 15:17

我做的毕业设计和你的差不多

用evc4.0+sqlce+ppc2003在MFC方式下,能用oledb方式访问数据库么?win32好像是可以的。不知道你现在做的怎么样了,采取什么方法访问数据库?以后多交流一下阿,我也在做毕业设计。我的邮箱是[email=flyingeagle24@163.com]flyingeagle24@163.com[/email]

bigbone1 发表于 2008-5-27 13:47

你可以发邮件给我,对连接sqlce数据的方法进行封装,可以通过sql取到所有的数据,连接数据库关闭可以封装得更好,我的邮箱是[email]bigbone123@163.com[/email],可能不能很快给你回。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.