用过evb访问数据库的朋友来看看!!!大家讨论一下!

realghost3317 2003-06-04 09:37:06
做过evb的访问数据库程序,觉得如果在虚拟环境下调试自己的程序,要快很多。
但是mdb在pc上是不能直接转换成cdb的,偶只好在实机上调试程序,效率要低的多。
汗!
后来在微软的站点下了一个程序,看后照其思路做了个转换的程序,方法大概如下:
在虚拟环境下,用adoce3.0或以上,执行创建数据库sql,然后在虚拟环境下就会生成
cdb文件,有了cdb文件后就好办了,偶用的是笨办法,我把mdb库下的每一张表的创建
sql都写在了一个方法里,然后在虚拟环境下调用,这样就有了个可以在虚拟环境下
可以调用的数据库了。
但是,基础表里的数据并没有。偶还是用的笨办法,偶先在access把mdb库的表的数据用导出功能导成txt文件,再把这些txt文件copy到虚拟环境下,然后读入txt文件里的数据,接着用adoce插入数据库中。一样是每张表都写一个方法来调用。累!
以上是个人的一些思路,希望大家来讨论一下,最好那位大大把数据库转换的程序写成通用的。
哦,还有,就是虚拟环境的问题,偶用的是pocket pc 2002,是英文版本的,在导数据
的时候,如果有中文的话,就是乱码,后来偶换成中文版本的,就正常了。
希望在wince下开发程序的朋友和我联系,最好是涉及数据库的,偶的问题一大堆!
qq:7429340
email:realghost819@163.com
...全文
22 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dream2011 2003-07-20
  • 打赏
  • 举报
回复
to realghost3317(星际骑士)
pda没有软重启开关是不可能的,tj5100上肯定有,你到背面找找看,或者侧面低面等地方,软重启开关一般是凹进去的。你再看看。
cnming 2003-06-16
  • 打赏
  • 举报
回复
不过存储区和运行区是肯定有划分的,你可以向别人提问一下,比如www.msale.net里头就会有好多对各种机型都比较熟悉的人
cnming 2003-06-16
  • 打赏
  • 举报
回复
我没有用过联想的天机5100,很抱歉
realghost3317 2003-06-15
  • 打赏
  • 举报
回复
不行啊,cnming,找不到你说的那个控制复位的按钮,我用的是联想的天机5100,wince3.0的操作系统。
realghost3317 2003-06-14
  • 打赏
  • 举报
回复
阿,有控制复位的按钮阿,汗,居然不知道。
等我再去看看说明书!!!先谢谢你,cnming(cnming)
cnming 2003-06-14
  • 打赏
  • 举报
回复
我也不知道我说的这个是否对你的题,如果不对的话,就再讨论讨论
cnming 2003-06-12
  • 打赏
  • 举报
回复
PPC分为存储区和运行区,产生的数据如果存储了,复位的时候是不会清除的,如果没有存储,肯定会清除,cnwolfs说的由于文件打开时被复位导致的文件错误问题,只要有被复位,在任何情况都有可能发生的,PPC中有一个控制复位的按钮,你可以把它置为保护状态,这样复位的时候存储区的数据应该是不会丢的,我开发的一个项目用的PPC可多了,从来没有出现过这样丢失数据的,只有出现过由于文件打开时被复位导致的文件错误问题
cnwolfs 2003-06-11
  • 打赏
  • 举报
回复
Option Explicit

Public conn As ADOCE.Connection '数据库连接
Public rs As ADOCE.Recordset '公共的数据库记录集

Public strDBFilename As String '数据库文件名称

Public strSQL As String 'SQL语句临时变量

Public blnConnOpen As Boolean

Public Sub connClose()
'关闭数据库连接
On Error Resume Next

conn.Close
blnConnOpen = False

If Err Then
Err.Clear
End If

Set conn = Nothing

If Err Then
Err.Clear
End If

End Sub

Public Function connOpen() As Boolean
'创建数据库连接
On Error Resume Next

If Err Then
Err.Clear
End If

connOpen = True

If conn Is Nothing Or blnConnOpen = False Then

Set conn = CreateObject("ADOCE.Connection.3.0")
conn.Open strDBFilename

If Err Then
ErrMessageShow "数据库连接前错误,请检查PDA软件配置状态!", Err.Description & " connOpen 1", "数据库连接", True
connOpen = False
Err.Clear
Exit Function
End If

blnConnOpen = True

Set rs = CreateObject("ADOCE.Recordset.3.0")
End If

End Function


Public Sub SQLCommand(strSQLCommand As String)

On Error Resume Next

If connOpen = True Then
conn.Execute (strSQLCommand)
End If

If Err Then
ErrMessageShow "SQL语句执行错误!", Err.Description & " SQLCommand", "数据库", True
Err.Clear
End If

End Sub


Public Sub BuildDataBase()
Dim rsBuild

On Error Resume Next

strDBFilename = "\Windows\Managerwww.cdb"

Set rsBuild = CreateObject("ADOCE.Recordset.3.0")

strSQL = "CREATE DATABASE '" & strDBFilename & "'"

rsBuild.Open strSQL
rsBuild.Close


strSQL = "CREATE table AT_ShippingBayContainer (ShippingPropertyID Integer, VoyageID Integer, BayID Integer, ID Integer)"
SQLCommand strSQL


If connOpen() = True Then
conn.Execute ("Delete FROM AT_Shipping")

strSQL = "SELECT ShippingPropertyID, VoyageID, BayID, ID"
strSQL = strSQL & " FROM AT_Shipping"

rs.Open strSQL, conn, adOpenKeyset, adLockPessimistic

rs.AddNew
rs.Fields("ShippingPropertyID") = 10
rs.Fields("VoyageID") = 191
rs.Fields("BayID") = 1
rs.Fields("ID") = 1
rs.Update

End If
End Sub


这里我删除了一些敏感的代码,有可能会不完整,自己调整一下就可以了

cnwolfs 2003-06-11
  • 打赏
  • 举报
回复
应该来说PPC都有两个电池,不过我没有玩过国产机,这两个电池一个是主电池,用来工作的,另外一个是辅助电池,当主电池没有电之后保存数据的,当你开启这个电池工作的时候,按复位键是不会清除存储区的数据的,因此不会由于这个丢失

现在又有出带Flash Rom的PPC,这样更不会丢了,当然要小心由于文件打开时被复位导致的文件错误问题
realghost3317 2003-06-11
  • 打赏
  • 举报
回复
cnwolfs,我说的不是由于断电引起的掉数据,而是运行程序时出现的死机情况,
而且掉的数据是我在程序运行中产生的。ppc遇到这种情况只有复位,这时ram中的数据就丢失了。
还有没有flash rom阿!
realghost3317 2003-06-10
  • 打赏
  • 举报
回复
楼上得这位得方法不错阿!!!我去试试!
感谢中。。。。。。。。。
偶有个问题,就是使用实机时,偶用的是联想的天机系列的,操作系统是wince3.0,由于程序运行时,所有的数据都在ram中,出现死机的情况话,数据库中的数据就全部丢失了。这个问题偶一直
没有解决,欢迎大大帮忙!!!
联想的ppc有一个文件夹IPSM,完全复位数据也还在。但是访问速度要比其他文件夹慢,
如果把数据库文件放在ipsm下,不知道会不会丢数据?本人觉得不行,请教!!!
cnwolfs 2003-06-10
  • 打赏
  • 举报
回复
假设你有硬件的话,你可以把MDB文件通过同步软件复制到PDA中,然后更改扩展名,改为同步软件不认识的扩展名,然后复制到PC,然后改扩展名为CDB即可


很容易的,不过有可能会存在PDA的Pocket Access和模拟器中的cdb驱动不一样的因素
980 2003-06-09
  • 打赏
  • 举报
回复
Public Const DBPATH = "app.path & yourname.cdb"

Public Function oprs(ByVal sqlstr) 'Open Records

Dim rs

Set rs = CreateObject("adoce.recordset.3.0")
rs.Open sqlstr, DBPATH, adOpenKeyset, adLockOptimistic
Set oprs = rs
' Set rs = Nothing

End Function
还是不会
980 2003-06-09
  • 打赏
  • 举报
回复
Dim connDatabase
Set connDatabase = CreateObject(“ADOCE.Connection.3.0”)
connDatabase.ConnectionString = “data source = \db1.mdb
connDatabase.Open
这样不好使。怎么办??????????????

980 2003-06-09
  • 打赏
  • 举报
回复
evb怎么和数据库相连啊?我知道vb的连法。他怎么办。楼上的可不可以详细的告诉我一下。我刚学。还的马上解决。
realghost3317 2003-06-06
  • 打赏
  • 举报
回复
怎么没人回复阿

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧