Вы находитесь на странице: 1из 9

What are the three main differences between flexgrid control and dbgrid(Data bou

nd Grid) control
The Microsoft FlexGrid (MSFlexGrid) control displays and operates on tabular dat
a. It allows complete flexibility to sort, merge, and format tables containing s
trings and pictures. When bound to a Data control, MSFlexGrid displays read-only
data.Adaptation to existing Visual Basic code for the data-bound grid (DBGrid).

dbgrid is A spreadsheet-like bound control that displays a series of rows and co


lumns representing records and fields from a Recordset object.

The data grids are bound controls; that is, they require a data source that actu
ally connects to a database and retrieves their data. And it seems that the root
of the problem with DBGrid is that there's no data source that can be readily i
ncluded along with the DBGrid control.
In Visual Basic, the solution is simply to include the Data Control on the same
form as DBGrid. But the Data Control is an intrinsic control; it's unavailable t
o anything outside of the Visual Basic environment itself. and VB 6.0 has a new
set of data controls (DataGrid, DataList, DataCombo, MSHFlexGrid, MSFlexGrid) th
at once again are bound controls. Unlike DBGrid, though, they support OLE DB, an
d therefore rely on the an ADO Data Source (and in particular the ActiveX Data O
bjects Data Control, or ADO DC) for data access. Unlike the Data Control, the AD
O
DC is a custom control (that is, an .OCX) that can be added to any project. In s
hort, if you add ADO DC to your project along with the
DataGrid control.
ActiveX and Types of ActiveX Components in VB ?
Standard EXE
ActiveX EXE
ActiveX DLL
ActiveX document
ActiveX Control
What is difference between inprocess and out of process ?
An in-process component is implemented as a DLL, and runs in the same process sp
ace as its client app, enabling the most efficient communication between client
and component.Each client app that uses the component starts a new instance of i
t.
An out of process component is implemented as an EXE, and unlike a dll, runs in
its own process space. As a result, exe's are slower then dll's
because communications between client and component must be marshalled across pr
ocess boundaries. A single instance of an out of process component can service m
any clients.
Advantage of ActiveX Dll over Active Exe ?
ACTIVEX DLL:
=============
An in-process component, or ActiveX DLL, runs in another application s process. In
-process components are used by applications or other in-process components. thi
s allows you to wrap up common functionality (like an ActiveX Exe).
ACTIVEX EXE:
=============
An out-of-process component, or ActiveX EXE, runs in its own address space. The
client is usually an application running in another process.The code running in
an ActiveX Exe is running in a separate process space. You would usually use thi
s in N-Tier programming.
An ActiveX EXE runs out of process while an ActiveX DLL runs in the same process
space as VB app. Also, and ActiveX EXE can be run independent of your applicati
on if desired.
Explain single thread and multithread thread apartments
All components created with Visual Basic use the apartment model, whether they re
single-threaded or multithreaded. A single-threaded component has only one apart
ment, which contains all the objects the component provides.
This means that a single-threaded DLL created with Visual Basic is safe to use w
ith a multithreaded client. However, there s a performance trade-off for this safe
ty. Calls from all client threads except one are marshaled, just as if they were
out-of-process calls.
What is a Component?
If you compile an ActiveX dll, it becomes a component.
If you compile an ActiveX Control, it becomes both a component and a control. Co
mponent is a general term used to describe code that's grouped by functionality.
More specifically, a component in COM terms is a compiled collection of propert
ies/methods and events.
Typically a component is loaded into your project via the References whereas an
ActiveX Control is loaded into your project via "components".
What is meant by "Early Binding" and "Late Binding"? Which is better?
Early binding and late binding refer to the method used to bind an interface's p
roperties and methods to an object reference (variable). Early binding uses type
library information at design time to reference procedures, while late binding
handles this at run time. Late binding
handles this by interrogating the reference before each call to insure that it s
upports a particular method. Since every call to a late bound
object actually requires two calls
("Do you do this?" followed by "Okay, do it then"), late binding is much less ef
ficient than early binding. Except where early binding is not supported (ASP, sc
ripting, etc.), late binding should only be used in very special cases.
It is a common misconception that any code using the CreateObject function inste
ad of Set = New is using late binding. This is not the case. The type declaratio
n of the object variable determines whether
it is late or early bound, as in the following:
Dim A As Foo
Dim B As Foo
Dim C As Object
Dim D As Object
Set A = New Foo 'Early Bound
Set B = CreateObject("FooLib.Foo") 'Early Bound
Set C = CreateObject("FooLib.Foo") 'Late Bound
Set D = New Foo 'Late Bound
What are the Advantages of disconnected recordsets?
A disconnected Recordset, as its name implies, is a Recordset that lacks a conne
ction.
seen that a Recordset that does not have a database connection can be very usefu
l as a tool in your programming. It can save you time and effort and make your c
ode more scalable.
In order to create a disconnected Recordset two Recordset properties must be set
appropriately.
It is a requirement that the CursorLocation property is set to adUseClient and t
he LockType property is set to adLockBatchOptimistic. Note that the CursorType w
ill default to adUseStatic if we don't explicitly state that it should be set to
adUseClient.) i.e
rst.LockType = adLockBatchOptimistic
rst.CursorLocation = adUseClient
However, we've recently discovered that these steps aren't necessary. VB automat
ically assigns batch optimistic locking to newly created,
connectionless recordsets. And, of course, without a connection, a recordset can
't have any other cursor but a client-side one. To create one of these structure
s, then, the only thing you need do is create
the object variable instance. After that, you can simply begin adding fields to
the construct.
To add fields, you use the Fields collection's Append method. This method requir
es two parameters , the field name and the field data type. So, to create a conn
ectionless recordset with two fields,you'd use code similar to:
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Fields.Append "CustID", adVarChar
rst.Fields.Append "CustName", adVarChar
Additional, optional Append method parameters include DefinedSize and Attrib. Th
e DefinedSize argument takes the size of the field. Fill the Attrib parameter wi
th constants that define additional field characteristics, such as whether it wi
ll allow null values or is updatable.
Since, in our technique, we want the fields to mirror the structure of the origi
nal recordset, we'll simply use existing values for these parameters.
Disconnected Recordsets, first available with ADO 2.0, are the most commonly use
d mechanism to retrieve a Recordset and open a connection for only the necessary
amount of time, thus increasing scalability. They are call disconnected because
the connection to the database is closed.
The collections, properties, and methods of a disconnected Recordset are still a
vailable even though the connection is closed. This frees up server resources, g
iven that the number of open connections is limited and database locking is a no
n-issue.
What are Benefits of wrapping database calls into MTS transactions?
If database calls are made within the context of a transaction, aborting the tra
nsaction will undo and changes that occur within that transaction.
This removes the possibility of stranded, or partial data. Transaction that uses
the Microsoft® Transaction Server (MTS) environment. MSMQ implicitly uses the cur
rent MTS transaction if one is available.
BENIFTIS OF USING MTS :
Database Pooling, Transactional operations, Deployment, Security, Remote Executi
on This allows MTS to reuse database connections. Database connections are put t
o ?sleep? As opposed to being created and destroyed and are activated upon reque
st.

How to register a component?


Compiling the component, running REGSVR32 MyDLL.dll
Controls which do not have events ?
Shape and line controls are useful for drawing graphical elements on
the surface of a form. These controls don't support any events; they
are strictly for decorative purposes.
EXTRA INFO::
The image, shape and line controls are considered to be lightweight controls; th
at is, they support only a subset of the properties, methods, and events found i
n the picture box. Because of this, they typically require less system resources
and load faster than the picture box control.

What are the Control Categories


a)Intrinsic controls:
such as the command button and frame controls. These controls are contained insi
de the Visual Basic .exe file. Intrinsic controls are always included in the too
lbox
b)ActiveX controls:
which exist as separate files with a .ocx file name extension. These include con
trols that are available in all editions of Visual Basic (DataCombo, DataList co
ntrols, and so on) and those that are available only in the Professional and Ent
erprise editions (such as Listview, Toolbar, Animation, and Tabbed Dialog). Many
third-party ActiveX controls are also available.
c)Insertable Objects:
such as a Microsoft Excel Worksheet object containing a list of all your company
's employees, or a Microsoft Project Calendar object containing the scheduling i
nformation for a project. Since these can
be added to the toolbox, they can be considered controls.Some of these objects a
lso support Automation (formerly called OLE Automation),which allows you to prog
ram another application's objects from within a Visual Basic application.
DIFF between Image and Picture box controls?
The sizing behavior of the image control differs from that of the picture box. I
t has a Stretch property while the picture box has an AutoSize property. Setting
the AutoSize property to True causes a picture box to resize to the dimensions
of the picture; setting it to False causes the picture to be cropped (only a por
tion of the picture is visible). When set to False (the default) , the Stretch p
roperty of the image control causes it to resize to the dimensions of the pictur
e.
Setting the Stretch property to True causes the picture to resize to the size of
the image control, which may cause the picture to appear
distorted.

Default property of datacontrol ?...


connect property......

Define the scope of Public, Private, Friend procedures?


The set of public variables, methods, properties, and events described in a clas
s module define the interface for an object. The interface consists of the objec
t members that are available to a programmer who's using the object from code.
You can create private variables, methods, properties, and events that are used
by other procedures within the class module but are not part of the object's pub
lic interface. Additionally, constants user-defined types, and Declare statement
s within a class module must always be private.
The Friend keyword makes a procedure private to the project: The procedure is av
ailable to any code running within the project, but it is not available to a ref
erencing project.
Describe Database Connection pooling relative to MTS ?
This allows MTS to reuse database connections. Database connections are put to ?
sleep? as opposed to being created and destroyed and are activated upon request.
Object pooling is an important design concept required for high-performance appl
ications. A performance optimization based on using collections of preallocated
resources, such as objects or database connections. Pooling results in more effi
cient resource allocation.
Difference between a function and a subroutine ?
A function accepts any number of parameters (possibly zero), does something with
them, and returns a value. A subroutine is performs an action, but doesn't retu
rn a value.
There are two differences between a function and a subroutine: A)How they are in
voked. B)How they are accessed.
A function call has the following syntax ::
function(arg1, arg2, ...)
where: function Is the name of the function. arg1, arg2, ... Are the arguments.
A subroutine call has the following syntax
::subroutine (arg1, arg2, ... {outputfield|'format'})
where: subroutine -->Is the name of the subroutine. arg1, arg2, ... Are the argu
ments. {outputfield|'format'} Is the name of the output field or its format.
In addition, on some platforms, the functions are available immediately; whereas
, the subroutines are available in a special subroutine library that you must ac
cess.
Difference between Linked Object and Embedded Object?
Embedding objects -
When you embed an object, a copy of the object is inserted into the destination
document. There's no link to the original file. When you change information in t
he source document, no changes will be reflected in the destination document. Th
e actual data for the object is stored within the destination file. To make chan
ges to the embedded object, double click it and it will launch the original appl
ication the source file was in.
Linking objects -
Information is updated when you modify the original source file when you use a l
inked object. This dynamic updating is very handy for things such as the aforeme
ntioned monthly report. You can open up the Excel spreadsheet that is referenced
within your Word document.Make changes to the spreadsheet, close Excel, and whe
n you open your Word document... viola! The changes are already there. If that o
bject is linked to ten other Word files, the changes are already in those ten fi
les, too! actually linking or embedding an object is fast and easy.
Difference between listbox and combo box?
A LISTBOX CONTROL displays a list of items from which the user can select one or
more. If the number of items exceeds the number that can be displayed, a scroll
bar is automatically added to the ListBox control. A COMBOX CONTROL combines th
e features of a text box and a list box. This control allows the user to select
an item either by typing text into the combo box, or by selecting it from the li
st.
DIFF::Generally, a combo box is appropriate when there is a list of suggested ch
oices, and a list box is appropriate when you want to limit input to what is on
the list. A combo box contains an edit field, so choices not on the list can be
typed in this field.
Difference between Dynaset and Snapshot?
All Recordset objects are constructed using records (rows) and fields (columns).
There are five types of Recordset objects:
Table-type Recordset ::
representation in code of a base table that you can use to add, change, or delet
e records from a single database table (Microsoft Jet workspaces only).
Dynaset-type Recordset ::
the result of a query that can have updatable records. A dynaset-type Recordset
object is a dynamic set of records that you can use to add, change, or delete re
cords from an underlying database table or tables. A dynaset-type Recordset obje
ct can contain fields from one or more tables in a database. This type correspon
ds to an ODBC keyset cursor.
Snapshot-type Recordset ::
a static copy of a set of records that you can use to find data or generate repo
rts. A snapshot-type Recordset object can contain fields from one or more tables
in a database but can't be updated. This type corresponds to an ODBC static cur
sor.
Forward-only-type Recordset::
identical to a snapshot except that no cursor is provided. You can only scroll f
orward through records. This improves performance in situations where you only n
eed to make a single pass through a result set. This type corresponds to an ODBC
forward-only cursor.
Dynamic-type Recordset ::
a query result set from one or more base tables in which you can add, change, or
delete records from a row-returning query. Further, records other users add, de
lete, or edit in the base tables also appear in your Recordset. This type corres
ponds to an ODBC dynamic cursor (ODBCDirect workspaces only).
Difference Listindex and Tab index?
LIST INDEX::
Returns or sets theindex of the currently selected item in the control. Not avai
lable at design time.Default LIST INDEX IS -1 for ComboBox, DirListBox, and Driv
eListBox controls
TAB INDEX::
Returns or sets thetab order of most objects within their parent form. Visual Ba
sic automatically renumbers the TabIndex of other controls to reflect insertions
and deletions. You can make changes atdesign time using theProperties window or
atrun time in code.The TabIndex property isn't affected by the ZOrder method.
Difference modal and moduless window?
MODAL forms are forms which require user input before any other actions can be t
aken place. In other words, a modal form has exclusive focus in that application
until it is dismissed. When showing a modal form, the
controls outside this modal form will not take user interaction until the form i
s closed. The internal MsgBox and InputBox forms are examples of modal forms. To
show a form modally, use the syntax:
MyForm.SHOW.vbModal ' a predeclared constant for 1
MODELESS forms are those which are shown but do not require immediate user input
. MDI child forms are always modeless. To show a form modeless, use the syntax::
MyForm.SHOW
Difference Object and Class?
Classes and objects are separate but related concepts. Every object belongs to a
class and every class contains one or more related objects.
1)A Class is static. All of the attributes of a class are fixed before,during, a
nd after the execution of a program. The attributes of a class don't change.The
class to which an object belongs is also (usually) static. If a particular objec
t belongs to a certain class at the time that it is created then it almost certa
inly will still belong to that class right up until the time that it is destroye
d.
2)An Object on the other hand has a limited lifespan. Objects are created and ev
entually destroyed. Also during that lifetime, the attributes of the object may
undergo significant change.So basically the difference between a class and an ob
ject is that a class is a general concept while objects are the specific and rea
l instances that embody that concept. When creating an object oriented program w
e define the classes and the relationships between the classes . We then execute
the program to create, update, and destroy the objects which are the specific r
ealization of these classes.
Difference Query unload and unload in form?
Occurs before a form or application closes. When an MDIForm object closes, the Q
ueryUnload event occurs first for the MDI form and then in all MDI child forms.
If no form cancels the QueryUnload event, the Unload event occurs first in all o
ther forms and then in an MDI form. When a child form or a Form object closes, t
he QueryUnload event in that form occurs before the form's Unload event.
Difference Declaration and Instantiation an object?
Dim obj as OBJ.CLASS with either
Set obj = New OBJ.CLASS or
Set obj = CreateObject(?OBJ.CLASS?) or
Set obj = GetObject( ,? OBJ.CLASS?)
or
Dim obj as New OBJ.CLASS
Set object = Nothing
ensure the object is release from the memory.
If this object is a form, you can add set myform = nothing and Form_Unload() eve
nt.Maintain a habit of remove the object by using set object = nothing which wil
l benefit at last.
Visual Basic is supposed to automatically release objects when they go out of sc
ope. To free up some memory usage, you can set the object to
nothing.
Draw and explain Sequence Modal of DAO
Connection,Container,Database,DBEngine,Document,Error,Field,Group,Index
Parameter Property,QueryDef,Recordset,Relation,TableDef,User,Workspace
Version |Year |Significant Changes and New Features of Visual Basic?
1 1991 initial release, with drag and drop GUI creation
2 1992 ODBC, object variables
3 1993 Access Engine, OLE 2.0, Crystal Reports, new tools and controls
4 1995 classes, OCXs
5 1997 compiler, ActiveX controls
6 1998 web support, windowless controls, designers, data sources
.NET 2001 XML, SOAP, inheritance, structured exception handling
How can objects on different threads communicate with one another?
Processes communicate with one another through messages, using Microsoft's Remot
e Procedure Call (RPC) technology to pass information to one another. There is n
o difference to the caller between a call coming from a process on a remote mach
ine and a call coming from another process on the same machine.
Multithreaded applications must avoid two threading problems: deadlocks and race
s. A deadlock occurs when each thread is waiting for the other to do something
How can you force new objects to be created on new threads?
The CreateThread function creates a thread to execute within the virtual address
space of the calling process.
To create a thread that runs in the virtual address space of another process Cre
ating a new thread is as easy as declaring it and supplying it with a delegate t
o the method where the thread is to start. When you are ready to begin execution
on the thread, call the Thread.Start Method. There are special considerations i
nvolved when working with multiple threads of execution.
To create a new thread of execution
====================================
Declare the thread.
******************
' Visual Basic
Dim myThread as System.Threading.Thread
// C#
System.Threading.Thread myThread;
Instantiate the thread with the appropriate delegate for the starting point of t
he thread. Use the AddressOf operator to create the delegate
in Visual Basic, or create a new ThreadStart object in C#.
*******************
' Visual Basic
myThread = New System.Threading.Thread(AddressOf
myStartingMethod)
// C#
myThread = new System.Threading.Thread(new
System.Threading.ThreadStart(myStartingMethod));
call the Thread.Start method to start the thread.
*******************
' Visual Basic
myThread.Start()
// C#
myThread.Start();
How does a DCOM component know where to instantiate itself?
To create a remote instance of a script component, call the CreateObject method,
passing it the name of the remote computer as a parameter. If the remotable att
ribute of a script component's element has been set to "true," the script compon
ent can be instantiated remotely from another computer using Distributed COM (DC
OM).
Both computers must have basic DCOM installed. Note The ability to use CreateObj
ect for instantiating remote script components requires Visual Basic 6.0 or late
r or VBScript 5.0 or later. The following Visual Basic example shows how to do t
his on a computer named "myserver":
Set newS = CreateObject("Component.MyComponent", "myserver")
Note There can be a slight delay when you first instantiate a remote script comp
onent while DCOM establishes communication between the computers.
1. You can specify the machine on which you want to create the remote server obj
ect in DCOM config ('dcomcnfg').
2. You can specify the machine name when instantiating the remote server object.
In C you can do this with a call to CoGetClassObject or CoCreateInstanceEx (inst
ead of CoCreateInstance, which does not allow you to specify the name of the mac
hine).
In VB you can specify the name in one of the parameters in the call to CreateObj
ect

What type of multi-threading does VB6 implement?


Apartment model threading

How to register a component?


Compiling the component, running REGSVR32 MyDLL.dll
What is Database Connection pooling (relative to MTS)
This allows MTS to reuse database connections. Database connections are
put to "sleep" As opposed to being created and destroyed and are activated upon
request.

What is the tool used to configure the port range and protocols for DCOM communi
cations?
DCOMCONFIG.EXE
What is a Type Library and what is it's purpose ?
The type library may represent another Visual Basic project, or any other execut
able component that

Вам также может понравиться