问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求Truedbgrid VB版的中文说明文件 或者VB+truedbgrid 不使用adodc控件时...

发布网友 发布时间:2023-12-26 23:12

我来回答

2个回答

热心网友 时间:2024-09-14 04:30

True DBGrid Pro 6.0是一个数据感知ActiveX grid控件。

Bookmark属性:该属性为指定行返回或设置一个书签,这个行在一个RowBuffer对象里,传递到一个未绑定事件处理过程。在非绑定模式中,一个书签包含了一个用户定义的值,该值不重复地标识数据的每一行。在UnboundReadData和UnboundAddData事件里,你的代码必须为取回或添加数据的列提供书签。在UnboundWriteData和UnboundDeleteRow事件里,网格控件传递这些书签中的一个作为参数,所以你的代码能做一个适当的动作。

True DBGrid和the Microsoft Data Access Objects (DAO) library都使用书签来标识记录和操作数据库。一个书签是一个变量,不重复地标识数据库中一个特定的行。例如:它是一个行号的概念。

习惯于使用行号来确定记录的程序员可能需要概念性修正。在一个关系数据库中,一个记录的顺序位置是不相关的,因为在数据库或一个查询结果集中的总行数一般是无效的。当执行某个操作如FindFirst or FindNext,当前记录向前移动一个不确定的行数,并且没有有效的方法来确定移动多少。为了避免耗时的计算操作,大多数关系数据库系统都放弃了使用行号而采用书签来处理。

书签实际上非常易于使用。下面是要记录的基本规则:

每一个记录或行都有一个不重复的书签
你可以通过设置网格或Data控件的书签属性来移动到指定记录上
TDBGrid1.Bookmark = SomeBookmark

Data1.Recordset.Bookmark = SomeBookmark

SomeBookmark通常是一个你从Data控件、一个副本、或一个书签集里获得的书签。网格控件或Data控件的Bookmark属性总是包含当前记录的书签。

你可以通过移动动到第一或最后记录,或移动到当前书签相关位置来游历数据库
Data1.Recordset.MoveFirst

Data1.Recordset.MoveLast

Data1.Recordset.MoveNext

Data1.Recordset.MovePrevious

在绑定模式,你一般不知道书签的格式或语法,所以不要试图读一个书签的细节或自己构建一个书签。在一个书签上执行唯一的合法操作是把它存成一个变量,给它指定适当的属性或方法,并与另一个书签比较来判定两个是否一样:
' Saving a bookmark:

Dim SomeBookmark as Variant

SomeBookmark = Data1.Recordset.Bookmark

' Assigning a bookmark:

Data1.Recordset.Bookmark = SomeBookmark

' To reliably compare bookmarks, you must first convert them

' into strings:

Dim Bk1 As String, Bk2 As String

Bk1 = SomeBookmark1

Bk2 = SomeBookmark2

If Bk1 = Bk2 Then

...

End If

 

注意:在VB里可靠地比较两个书签,你必须首先把他们转换到字符串

 

你可以任意选择标识行的方法来作书签,但要注意的是每一行的书签必须保持不得重复。通常,你总是想能够用书签迅速地搜索记录,这样,当一个网格给你一个书签时,就要请求在你的数据集里的相关信息,你应该能够迅速定位这些网格请求的行。有一个重要的概念要记住,无论你为指定行提供给网格什么样的书签,那都是网格随后用来查寻行的依据。下面是三个使用书签的例子:

1、如果你把数据和非绑定网格一起使用,你可以用一个关键字段的值来作为书签。使用这种方法,当提交书签时,你能很快地搜索和接收到相关的记录;

2、如果你使用的数据库支持行号或记录号,这些可以方便地用作书签;

3、如果你和一个自定义数据阵列一起使用网格,阵列的行索引是做书签的一个选择。

书签不能超过255个字符,因为VB5的每个字符使用2个字节来存储,这意味着字符串书签不能超过127个字符。

True DBGrid的非绑定模式支持tring, integral, and floating point书签,其他的数据类型必须转换成String才能被传进网格做书签。

在从UnboundReadDataEx事件返回前,你必须用不重复的行标记填充RowBuf的Bookmark阵列,和实际数据的Value阵列。例如:如果,offset 是1(或-1),那么你必须填进RowBuf,从StartLocation后的第几行(或先于StartLocation第几行)开始。RowBuf参数作为一个二维阵列,通过用适当的数据来设置它的Value属性,你的事件处理过程就可以从非绑定数据集传送行到grid。使用行缓冲的RowCount属性来判定grid需要多少数据行。使用它的ColumnCount属性来判定列的数量。如果ColumnCount是零,那么grid将请求一个单行的书签,如果ColumnCount不是零,那么grid将请求RowCount行数的数据和相应的书签。

使用RowBuffer对象

RowBuffer对象仅用在DataMode属性被设为1- Unbound 或 2 - Unbound Extended时,它仅存在于传送数据到网格或从网格传出数据时存在。你不能创建一个独立的RowBuffer对象。

RowBuffer是一个可编程对象,对于在网格和你的数据源之间通过网格事件来改变数据。RowBuffer对象被作为一个参数传递进一个非绑定网格事件处理器。实际上,RowBuffer对象只能存在于非绑定事件的作用区域;你不能在代码里创建一个新的作为一个Column或Split对象。下面是RowBuffer对象属性的简要描述

 

RowCount属性

RowCount是一个long,指出能在一个非绑定事件(read, write or add)里能被处理的最大行数,如果该属性的值超过了能被处理的行数,例如:当一个文件结尾条件被侦测到,那么你的事件处理代码应该改变这个属性,以反馈实际的行处理数量。该属性返回或设置被传递到非绑定事件处理过程中的RowBuffer对象的行数。在UnboundReadData事件中,该属性标识grid请求了多少行数据。在用Value和Bookmark属性填充了这些行后,你的事件处理过程应该用实际取得的行数来设置RowCount属性。在UnboundAddData和UnboundWriteData事件中,该属性的值始终是1,因为一次只能添加或删除一行。但是可以把这个属性设为0来标识添加或删除操作失败。注意:当一个RowBuffer对象被传递到一个非绑定事件处理过程,RowCount属性的初始值总是反应出最大值。如果你试图超过这个最大值,将引发一个错误。

RowBuffer.RowCount = Long

 

ColumnCount 属性

ColumnCount是integer,指出在一个非绑定事件应该处理的列数。该属性是只读的,不要试图改变它。非绑定事件处理所有列请求。

Integer = RowBuffer.ColumnCount

 

ColumnName属性

ColumnName是一个string array,指定相应的网格列名到一个row buffer index。该属性是只读的。

String = RowBuffer.ColumnName(ColIndex)

' where ColIndex = 0 to ColumnCount – 1

 

Bookmark属性

Bookmark是一个variant array,当RowBuffer用来在一个非绑定读事件中取数据时,它用来指定不重复的行标记

RowBuffer.Bookmark(RowIndex) = Variant

' where RowIndex = 0 to RowCount - 1

 

Value属性

Value是一个variant array,用来指定一个由RowBuffer行和列组成的数据值

RowBuffer.Value(RowIndex, ColIndex) = Variant

' where RowIndex = 0 to RowCount - 1

' and ColIndex = 0 to ColumnCount - 1

 

ColumnIndex属性

ColumnIndex是一个variant array,用来指定一个网格列索引,该属性是只读的。可以在UnboundReadDataEx事件里使用它,来标识哪一个数据列正在被请求。ColumnIndex属性让你判定列的索引,它用于列的标识,为了让用户用适当的列数据填入Value property array。

Col = RowBuffer.ColumnIndex(RowIndex, ColIndex)

' where RowIndex = 0 to RowCount - 1

' and ColIndex = 0 to ColumnCount - 1

 

非绑定模式的事件

在DataMode 1 – Unbound,当网格需要判定一个相关书签时,会触发第一个事件。在需要提取数据行时会触发另一个。第一个事件是可选的,并且能被实现用来提高性能;第二个事件是强制性的

UnboundGetRelativeBookmark:当控件需要检索一个书签时被触发

UnboundReadData:当控件请求非绑定数据显示时被触发

 

In DataMode 2 - Unbound Extended,网格触发一个单一事件去获得数据和相关书签。这个事件是强制的

UnboundReadDataEx:当控件需要检索一个书签或请求非绑定数据显示时被触发

 

在模式1和2里,依据最终用户的权限设定,下面三个事件是可选的。

UnboundWriteData:当网格控件的当前行被修改并且用户确认该修改时被触发。该事件提示你用户想要个性在非绑定数据集合里修改一行。当在代码里网格控件的Updata方面被执行时,也会触发该事件。

 

UnboundAddData:当用户在网格控件的新添加行里输入数据并确认时触发该事件。该事件提示你用户想要在非绑定数据集里添加新的行。

 

UnboundDeleteRow:当用户删除当前网格控件的行时触发该事件。该事件提示你用户想从非绑定数据集里删除一行。当网格控件的Delete方法在代码里执行时,也会触发该事件。

 

UnboundReadDataEx详细描述

语法:object_UnboundReadDataEx (ByVal RowBuf As TrueDBGrid60.RowBuffer, StartLocation As Variant, ByVal Offset As Long, ApproximatePosition As Long)

事件作用于TDBGrid和TDBDropDown控件

参数: RowBuf是一个RowBuffer对象,用来传送数据行到网格。

StartLocation是一个书签(bookmark),和Offset一起指定数据传送的起始行。一个Null的StartLocation表示从头或从尾开始的数据。例如,如果StartLocation是Null并且Offset是2 (或-2),那么你就会从第二行(或最后两行)开始接收数据。Offset指定相于被传送数据第一行的相关位置,一个绝对数标识从相关位置的位移量。

 

True DBGrid Pro 6.0可以让用户在表格中浏览、编辑、添加和删除数据。使用建立在Visual Studio里最新的的数据绑定技术,包括OLE DB,True DBGrid Pro 6.0有一个完整的管理数据库接口,允许开发者在重要的特殊任务应用程序里集中,True DBGrid Pro 6.0还能与程序员自有数据源一起用非绑定或存储模式。

 

True DBGrid Pro 6.0设计成一个强大、通用并且易于使用的数据库开发工具,初级程序员可以不用写

热心网友 时间:2024-09-14 04:30

没用过这个控件,在google上搜搜,应该可以找到
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么牌子洗发水香味好闻持久 有哪些留香久的香氛洗发水值得入手? 香味持久的洗发水有哪些? 洗发水香味最持久排行 家装适合什么地板 客厅地板装修什么地板好 我家装修是北欧风格,想选一款与家里装修风格相匹配的地板,有何推荐? 什么样的装修用什么样的地板好 镇域 村镇 集体建设用地的区别 农村宅基地的升值之路:农民的生存保障还是财富陷阱? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 在国内卖小东西到美国,什么快递划算呀。 我看Ebay上两三美金的东西都... 我国领土960万平方公里是准确数还是近似数 微信删除了的好友怎么恢复聊天记录 一个城市一般有多少个海关?是不是每个县都有? 小孩总喝饮料好吗 不满一年如何更改? 学小易只能搜到填空选择吗 求Adobe Acrobat XI Pro 11.0 中文 破解版程序 lol剑豪反向q反向eq 如何一年内强制二次修改? 肺纹理增粗,是什么原因?有什么后果?得这病了怎么办? 有8吨货物,载质量分别为4吨,2吨的货车各一辆,怎样安排能运完主这些... 投递简历后多长时间回话 ...像一团团火,把人们的心也给燃烧起来了。这句话的意思是 手机号码注销了还可以用吗 一个手机号注册两个怎么弄 ...像一团团火,把人们的心也给燃烧起来了。这句话的意思是什么?_百度... 直到歇了中台是什么意思 小孩经常喜欢喝饮料对身体有哪些影响? 骑电动车上下班,每天上下班来回路程40多公里,怎么样? 要不要考虑租房子... 怎样申请二个码 两个绑定同一身份证 注销其中一个会对另一个产生影响吗? 《虚拟战士》txt下载在线阅读全文,谁有呀 如何在国外买到性价比高的儿童玩具? 一个微信怎么注册两个 一个手机号,注册了两个,如果把新注销掉,旧会回来吗... 校园招聘我投了简历有好几天了还没有音信是不是没通过啊 以前存在360云盘的照片怎么找回 ...的学生有1955 人 B.我国陆地国土面积约为960万平方千米 胰泌素的临床意义 目前考虑移民土耳其的主要是哪些人士? 花呗今年花明年还可以提前还款吗 碗上面莫名其妙出现血是为什么? ...能不能查到我身份证在之前办理过的结婚证或银行卡之类的资料?_百度... 网上那个算数算出来等于520.1314的 胖东来代购一般买什么 一年内怎么改第二次 五千多元组的电脑主机 几年后淘汰 Excel数据透视表统计占总额百分比数据透视表