专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Asp教程 » vb组件包:在VB组件中使用串缓冲 »正文

vb组件包:在VB组件中使用串缓冲

来源: 发布时间:星期四, 2008年9月25日 浏览:71次 评论:0
Lesson 1 :Overview
--------------------------------------------------------------------------------

This article serves as a quick \"How To\" example for using string buffering to concatenate strings in a VB
component. The example VB code will generate a HTML TABLE record that will be sent to an asp file after
being populated with data from a database table. The GetRows() method will be used to acquire the data
from an example Access database.

In many circumstances, sending a Variant array populated by GetRows(), (or a RecordSet) to an asp file
from a VB component is the recommended way to build a HTML TABLE record. Other times you may choose to
build a HTML TABLE record, or other database dependant code, within the VB component itself before sending
it to an asp file. This may not set well with the \"true believers\" in not mixing HTML and VB code. I tend
to be agnostic and I find sacrificing orthodoxy for speed is sometimes called for with server-side
components. In any regard, this programming choice is exemplified here.

Rather than sending the HTML code from the VB component with the Response.Write method, you can optionally
collect the HTML within a string and send it back as a complete HTML TABLE record. This avoids the need to
instantiate the asp object within the VB component. It also allows other VB code to use your component
without reference to asp. You\"re just generating pure HTML code that any COM object can use. But when
putting together a large HTML string in VB, the concatenation operant \"&\" can slow your code down
significantly.

We\"ll be creating two methods, MethodName() and DoBuffer(). The MethodName() method will acquire data from
a database and then use this data to construct a HTML TABLE record it will send to the calling asp file in
one lump sum. Our asp file will initially call the MethodName() method with an sql statement, a connection
string, and the number of fields used in our sql statement. In order to generate the HTML string with the
least use of the concatenation operant, the MethodName() method will send the string fragments it uses to
build the HTML TABLE record to the DoBuffer() method.

The supporting database file, text, and code, for this article can be downloaded here. If you\"re
unfamiliar with writing a server-side VB dll, you can read some introductory articles at my site. This
example will include a VB server-side dll (ActiveX dll) consisting of _disibledevent= StrHold & \"three.\"



Concatenating using a string buffering method:


S1, S2, S3, \"Testing one, \"
S1, S2, S3, \"two, \"
S1, S2, S3, \"three.\"



[This code fragment uses different method and variable names from the code in this article]

With large amounts of concatenating, I have experienced increases in speed of up to 1000 times greater
when using string buffering. This is primarily due to how VB manages the memory for strings with the \"&\"
operant.Lesson 2 :The VB Component
--------------------------------------------------------------------------------

How2Project4.vbp

The DoBuffer() Method
The DoBuffer() method will be sent a string buffer (strBuffer), the value of the length of the string data
already placed within the buffer (lngBuffer), and the string to add to the buffer (AddString). These
arguments will be declared and sent from our MethodName() method, which will be covered later in this
article.

Private Sub DoBuffer(ByRef strBuffer As String, ByRef lngBuffer As Long, ByVal AddString As String)



Notice that the DoBuffer() method is declared as a subroutine rather than a function. This is because it
doesn\"t really return any data from the method itself. Rather, it manipulates the data sent by reference
from the calling method.

Two local variables need to be declared for internal use.

如果本文没有解决您的问题,请进老妖怪开发者社区提问

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: