KEMBAR78
VB Inter Faq 1 | PDF | Component Object Model | Parameter (Computer Programming)
0% found this document useful (0 votes)
5 views9 pages

VB Inter Faq 1

The document contains a series of Visual Basic interview questions and answers covering various topics such as differences between FlexGrid and DBGrid controls, ActiveX components, in-process vs out-of-process components, and the advantages of disconnected recordsets. It also addresses concepts like early and late binding, database connection pooling, and the differences between various control types and objects. Overall, it serves as a comprehensive guide for preparing for a Visual Basic interview.

Uploaded by

ajitjhadecode
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views9 pages

VB Inter Faq 1

The document contains a series of Visual Basic interview questions and answers covering various topics such as differences between FlexGrid and DBGrid controls, ActiveX components, in-process vs out-of-process components, and the advantages of disconnected recordsets. It also addresses concepts like early and late binding, database connection pooling, and the differences between various control types and objects. Overall, it serves as a comprehensive guide for preparing for a Visual Basic interview.

Uploaded by

ajitjhadecode
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

VISUAL BASIC INTERVIEW QUESTIONS

=================================

'---- CursorTypeEnum Values[FROM MICROSOFT] ----


Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
To: swapnamalathi@yahoo.com,find_swapna@yahoo.com,memalathi@yahoo.com
-----------------------------------------------------------------------------------
--
1)3 main differences between flexgrid control and dbgrid(Data bound Grid) control
-----------------------------------------------------------------------------------
--
The Microsoft FlexGrid (MSFlexGrid) control displays and operates on tabular data.
It allows complete flexibility to sort, merge, and format tables containing strings
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 id A spreadsheet-like bound control that displays a series of rows and


columns
representing records and fields from a Recordset object.

The data grids are bound controls; that is, they require a data source that
actually 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 included 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 to anything outside
of the Visual
Basic environment itself.

and VB 6.0 has a new set of data controls (DataGrid, DataList, DataCombo,
MSHFlexGrid, MSFlexGrid)
that once again are bound controls. Unlike DBGrid, though, they support OLE DB, and
therefore
rely on the an ADO Data Source (and in particular the ActiveX Data Objects Data
Control, or ADO
DC) for data access. Unlike the Data Control, the ADO DC is a custom control (that
is, an .OCX)
that can be added to any project. In short, if you add ADO DC to your project along
with the
DataGrid control.
-----------------------------------------------------------------------------------
--
2)ActiveX and Types of ActiveX Components in VB ?
-----------------------------------------------------------------------------------
--
Standard EXE
ActiveX EXE
ActiveX DLL
ActiveX document
ActiveX Control
Project Group
-----------------------------------------------------------------------------------
--
3)diff between inprocess and out of process ?
-----------------------------------------------------------------------------------
--

An in-process component is implemented as a DLL, and runs in the same process space
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 it.

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 process boundaries. A single instance of an out
of process
component can service many clients.

-----------------------------------------------------------------------------------
--
3)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.
this 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 this 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 application if desired.

-----------------------------------------------------------------------------------
--
4)single thread and multithread thread aprtments
-----------------------------------------------------------------------------------
--
All components created with Visual Basic use the apartment model, whether they�re
single-threaded
or multithreaded. A single-threaded component has only one apartment, which
contains all the
objects the component provides.
This means that a single-threaded DLL created with Visual Basic is safe to use with
a multithreaded client. However, there�s a performance trade-off for this safety.
Calls from all client threads except one are marshaled, just as if they were out-
of-process calls.

-----------------------------------------------------------------------------------
--
5)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. Component 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 properties/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".

-----------------------------------------------------------------------------------
--
6)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
properties 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
supports 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
efficient than
early binding. Except where early binding is not supported (ASP, scripting, etc.),
late binding
should only be used in very special cases.

It is a common misconception that any code using the CreateObject function instead
of Set = New is using late binding. This is not the case. The type declaration 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

-----------------------------------------------------------------------------------
--
7)Advantages of disconnected recordsets
-----------------------------------------------------------------------------------
--
A disconnected Recordset, as its name implies, is a Recordset that lacks a
connection.
This may seem a bit confusing at first - how can a Recordset lack a connection to a
data store?
- but will hopefully become more clear as the article progresses.

seen that a Recordset that does not have a database connection can be very useful
as a tool in
your programming. It can save you time and effort and make your code 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 the
LockType
property is set to adLockBatchOptimistic. Note that the CursorType will 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


automatically 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
structures, 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 requires
two parameters
, the field name and the field data type. So, to create a connectionless 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. The
DefinedSize
argument takes the size of the field. Fill the Attrib parameter with constants that
define
additional field characteristics, such as whether it will allow null values or is
updatable.
Since, in our technique, we want the fields to mirror the structure of the original
recordset,
we'll simply use existing values for these parameters.

Disconnected Recordsets, first available with ADO 2.0, are the most commonly used
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
available even
though the connection is closed. This frees up server resources, given that the
number of open
connections is limited and database locking is a non-issue.

-----------------------------------------------------------------------------------
--
8)Benefit of wrapping database calls into MTS transactions?
-----------------------------------------------------------------------------------
--
If database calls are made within the context of a transaction, aborting the
transaction 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 current MTS transaction if one is available.
BENIFTIS OF USING MTS :
***********************
Database Pooling, Transactional operations, Deployment, Security, Remote Execution
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.
-----------------------------------------------------------------------------------
--
9)How to register a component?
-----------------------------------------------------------------------------------
--
Compiling the component, running REGSVR32 MyDLL.dll

-----------------------------------------------------------------------------------
--
10)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;
that is, they support only a subset of the properties, methods, and events
found in the picture box. Because of this, they typically require less system
resources and load faster than the picture box control.

-----------------------------------------------------------------------------------
--
11)Control Categories
-----------------------------------------------------------------------------------
--
a)Intrinsic controls:
**********************
such as the command button and frame controls.
These controls are contained inside the Visual Basic .exe file. Intrinsic controls
are always
included in the toolbox
b)ActiveX controls:
**********************
which exist as separate files with a .ocx file name extension. These
include controls that are available in all editions of Visual Basic
(DataCombo, DataList controls, and so on) and those that are available
only in the Professional and Enterprise 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 information for a project. Since these can be added to the toolbox,
they can be considered controls.Some of these objects also support Automation
(formerly called OLE Automation),which allows you to program another application's
objects from within a Visual Basic application.
-----------------------------------------------------------------------------------
--
12)DIFF between Image and Picture box controls
-----------------------------------------------------------------------------------
--
The sizing behavior of the image control differs from that of the picture box. It
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 portion of the picture is visible). When set to False
(the default)
, the Stretch property of the image control causes it to resize to the dimensions
of the picture.
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.
-----------------------------------------------------------------------------------
--
13)Default property of datacontrol ?...
-----------------------------------------------------------------------------------
--
connect property......(not sure..)
-----------------------------------------------------------------------------------
--
14)Define the scope of Public, Private, Friend procedures?
-----------------------------------------------------------------------------------
--
The set of public variables, methods, properties, and events described in a class
module define
the interface for an object. The interface consists of the object 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 public
interface. Additionally, constants user-defined types, and Declare statements
within a class module must always be private.<====>
The Friend keyword makes a procedure private to the project: The procedure is
available to any code running within the project, but it is not available to a
referencing project.
-----------------------------------------------------------------------------------
--
15)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
applications.
A performance optimization based on using collections of preallocated resources,
such as objects
or database connections. Pooling results in more efficient resource allocation.
-----------------------------------------------------------------------------------
--
16)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 return a value.

There are two differences between a function and a subroutine:


A)How they are invoked. 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
arguments.
{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 access.

-----------------------------------------------------------------------------------
--
17)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 the
source document, no changes will be reflected in the destination document. The
actual data for
the object is stored within the destination file. To make changes to the embedded
object, double
click it and it will launch the original application the source file was in.
Linking objects -
*****************
Information is updated when you modify the original source file when you use a
linked object.
This dynamic updating is very handy for things such as the aforementioned monthly
report.
You can open up the Excel spreadsheet that is referenced within your Word
document.Make changes
to the spreadsheet, close Excel, and when you open your Word document... viola! The
changes are
already there. If that object is linked to ten other Word files, the changes are
already in those
ten files, too!
actually linking or embedding an object is fast and easy.
-----------------------------------------------------------------------------------
--
18)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 the 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 list.
DIFF::Generally, a combo box is appropriate when there is a list of
suggested choices, 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.
-----------------------------------------------------------------------------------
--
19)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 delete 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 records from an underlying database table or tables.
A dynaset-type Recordset object can contain fields from one or more
tables in a database. This type corresponds 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 reports. 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 cursor.

Forward-only-type Recordset::
***************************
identical to a snapshot except that no cursor is provided. You can only
scroll forward through records. This improves performance in situations
where you only need 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, delete, or edit in the base tables also appear in your
Recordset. This type corresponds to an ODBC dynamic cursor (ODBCDirect
workspaces only).

-----------------------------------------------------------------------------------
--
20)Difference Listindex and Tab index?
-----------------------------------------------------------------------------------
--
LIST INDEX::
Returns or sets theindex of the currently selected item in the control.
Not available at design time.Default LIST INDEX IS -1 for ComboBox, DirListBox, and
DriveListBox
controls
TAB INDEX::
Returns or sets thetab order of most objects within their parent form.
Visual Basic 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.
-----------------------------------------------------------------------------------
--
21)Difference modal and moduless window?
-----------------------------------------------------------------------------------
--
MODAL forms are forms which require user input before any other actions
can be taken 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 is 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

You might also like