分享
 
 
 

Visual Basic访问数据库的常见问题

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

VB6.0的数据访问技术有无任何的改进?

VB6.0的数据访问技术有了许多改进:

1. ADO2.0/OLE DB 数据库连接更广泛。

2. 新的Oracle schema及Stored procedure设计能力。

3. Data Environment 可以设计基于ADO的数据库连接。

4. 整合新的Report Designer。

5. MHFlexGrid控件可显示分层数据。

6. 改进的Data Binding技术。

在Visual Basic 6.0中什么是 Data Report Designer?

微软的Visual Basic 6.0 Data Report Designer是内嵌于VB6.0的分层式报表设计器。Report Designer 使开发者能从新的Data Environment Designer 中用把对象拖放入分级的报表设计器中,来创建基于文本的,单级或多级的报表,可用于打印或保存为txt或html格式的文件。另外,Data Report Designer 便于VB6.0 开发人员以程序方式控制他们整个报表的操作,就像数据集成和验证,都在VB6.0 的开发环境中完成。该工具与VB5 所带的Crystal Report 工具相比,其与开发环境的集成程度有了较大程度的提高。

" 我查询 ADO recordset的RecordCount属性总是返回 -1。

在ADO 1.5版本时当我们用adOpenForwardonly 游标类型打开记录集时,RecordCount属性返回 -1,在ADO 2.0, 2.1和2.5版本时用adOpenDynamic类型也会发生这种情况。因此如果要访问记录集的RecordCount属性,请使用adOpenKeyset 或 adOpenStatic作为Server端的游标或使用客户端的游标打开记录集。另外请注意使用的LockType,有些LockType会强制改变游标类型。如果数据供给程序不支持你所设的游标类型,数据供给程序可能会使用一种相近的游标作为替换,也造成游标类型的改变,请同时参照数据供给程序的文档。

如何在VB中使用ADO SHAPE Command 实现分层记录集?

分层记录集通过客户端游标引擎实现的MSDataShape provider提供数据。层次结构的记录有点类似于使用JOIN 和 GROUP BY 的SQL 语句,但又有不同,后者返回的记录集包含了主表和从表的字段,而前者的记录集仅含有主表的字段,另外,这个记录集也含有一个附加的字段代表相关从表的数据,你可以将它赋给另一个记录集变量。当你为统计功能使用GROUP BY 和统计函数时,统计值总出现在记录集上,而使用分层记录统计信息会出现在主记录集上而子记录集还保存着子记录的详细内容。

有三种类型的SHAPE可供选择,基于关系的(Relation Based),基于参数的(Parameter Based)和基于组的(Group Based) 语法如下:

SHAPE {parent-statement}

APPEND Aggregate

| ({child-statement} [As Alias]

RELATE parent-field TO child-field | parameter-marker

[, parent-field TO child-field | parameter-marker ...])

[, Aggregate | ({child statement})...]

SHAPE {non-normalized-statement} [AS Alias]

COMPUTE Aggregate

| Alias

| ({child-statement} [As Alias] RELATE parent-field TO

child-field | parameter-marker)

[, Aggregate | Alias | ({child-statement}...)]

[BY grouping-field [, grouping-field]]

SHAPE {non-normalized-statement} [AS Alias]

BY grouping-field [, grouping-field]

详细信息请查阅:msdn\knowedge Base : Q189657

如何使用ADO访问加密的Access数据库?

如果你希望打开一个有口令保护的Access数据库,你可以用以下三种语法的任一种:

Dim MyConn As New ADODB.Connection

MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"

MyConn.Properties("Data Source") = "C:\...\JetPassword.MDB"

MyConn.Properties("Jet OLEDB:Database Password") = "MyPwd"

MyConn.Open

-或-

Dim MyConn As New ADODB.Connection

Dim strConn As String

strConn = "Data Source=C:\...\JetPassword.MDB;" & _

Jet OLEDB:Database Password=MyPwd"

MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"

MyConn.Open ConnectionString:=strConn

-或-

Dim MyConn As New ADODB.Connection

Dim strConn As String

strConn = "Provider=Microsoft.Jet.OLEDB.3.51;" & _

Data Source=C:\...\JetPassword.MDB;" & _

"Jet OLEDB:Database Password=MyPwd"

MyConn.Open ConnectionString:=strConn

如果你打开一个数据库使用了Jet安全保护,你需要使用以下方式:

Dim MyConn As New ADODB.Connection

MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"

MyConn.Properties("Data Source") = "C:\...\JetSecurity.MDB"

MyConn.Properties("Jet OLEDB:System database") = "C:\...\System.MDW"

MyConn.Open UserID:="Admin", Password:="MyPwd"

-或-

Dim MyConn As New ADODB.Connection

Dim strConn As String

strConn = "Data Source=C:\...\JetSecurity.MDB;" & _

"Jet OLEDB:System database=C:\...\System.MDW"

MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"

MyConn.Open ConnectionString:=strConn, _

UserID:="Admin", Password:="MyPwd"

-或-

Dim MyConn As New ADODB.Connection

Dim strConn As String

strConn = "Provider=Microsoft.Jet.OLEDB.3.51;"

"Data Source=C:\...\JetSecurity.MDB;" & _

"Jet OLEDB:System database=C:\...\System.MDW"

MyConn.Open ConnectionString:=strConn, _

UserID:="Admin", Password:="MyPwd"

注意:Jet 3.51 OLEDB provider 被设计用来打开Access97数据库,如果你要打开Access 2000 请使用Jet 4.0 OLEDB provider,当然Jet 3.51 OLEDB provider也能打开Access 97。

如果你希望使用Jet 4.0只要将Microsoft.Jet.OLEDB.3.51换成Microsoft.Jet.OLEDB.4.0

我用VB编写程序发布到某些计算机上,在连接Access数据库时出现运行时错误"3706: ADO could not find the specified provider",这是什么问题?

MDAC 2.0会安装Jet OLE DB provider 3.51版本。MDAC 2.1会安装Jet OLE DB provider 4.0版本,但如果机器上已经安装了3.51版本,MDAC 2.1不会删除也不会覆盖旧的3.51版本,这就使节3.51和4.0同时存在与你的开发机上。当连接Access数据库时,Jet OLE DB provider需要检查provider的版本号。而你在制作安装包时仅包含了MDAC 2.1,目标机上自然不可能有Jet OLE DB provider 3.51版本被安装,这就是错误发生的原因。此时你需要修改你的程序,使其使用4.0的Jet OLE DB provider。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有