Tuesday, July 1, 2008

VISUAL BASIC INTERVIEW QUESTIONS AND ANSWERS I

VISUAL BASIC INTERVIEW QUESTIONS

=================================
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
VB FREQUENTLLY ASKED QUESTIONS-2
********************************
-------------------------------------------------------------------------------------
22)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, and
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 object belongs to a certain
class at the time that it is created then
it almost certainly will still belong to that class
right up until the time that it is destroyed.
2)An Object on the other hand has a limited lifespan.
Objects are created and eventually
destroyed. Also during that lifetime, the attributes
of the object may undergo significant
change.So basically the difference between a class and
an object is that a class is a general
concept while objects are the specific and real
instances that embody that concept. When creating
an object oriented program we 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
realization of these classes.

-------------------------------------------------------------------------------------
23)Difference Query unload and unload in form?
-------------------------------------------------------------------------------------
Occurs before a form or application closes. When an
MDIForm object closes, the QueryUnload
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 other forms and then in an MDI form.
When a child form or a Form object closes, the
QueryUnload event in that form occurs before
the form's Unload event.

-------------------------------------------------------------------------------------
24)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() event.Maintain a
habit of remove the object by using set object =
nothing which will benefit at last.
Visual Basic is supposed to automatically release
objects when they go out of scope. To free
up some memory usage, you can set the object to
nothing.

-------------------------------------------------------------------------------------
25)Draw and explain Sequence Modal of DAO
-------------------------------------------------------------------------------------
Connection,Container,Database,DBEngine,Document,Error,Field,Group,Index
Parameter
Property,QueryDef,Recordset,Relation,TableDef,User,Workspace

-------------------------------------------------------------------------------------
26)Version |Year |Significant Changes and New Features
-------------------------------------------------------------------------------------
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

-------------------------------------------------------------------------------------
27)How can objects on different threads communicate
with one another?
-------------------------------------------------------------------------------------
Processes communicate with one another through
messages, using Microsoft's Remote Procedure
Call (RPC) technology to pass information to one
another.There is no difference to the caller
between a call coming from a process on a remote
machine and a call coming from another process
on the same machine.

Multithreaded applications must avoid two threading
problems: deadlocks and races.A deadlock
occurs when each thread is waiting for the other to do
something

-------------------------------------------------------------------------------------
28)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 Creating a new
thread is as easy as declaring it and supplying it
with a delegate to 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 involved 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 the 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();

-------------------------------------------------------------------------------------
29)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 attribute of a script component's
element has been set to "true,"
the script component can be instantiated remotely from
another computer using Distributed COM (DCOM).

Both computers must have basic DCOM installed. Note
The ability to use CreateObject for instantiating
remote script components requires Visual Basic 6.0 or
later or VBScript 5.0 or later.
The following Visual Basic example shows how to do
this 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 component
while DCOM establishes communication between the
computers.

1. You can specify the machine on which you want to
create the remote server object 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 (instead of CoCreateInstance,
which does not allow you to specify the name of the
machine).
In VB you can specify the name in one of the
parameters in the call to CreateObject

-------------------------------------------------------------------------------------
30)What type of multi-threading does VB6 implement?
-------------------------------------------------------------------------------------
Apartment model threading

-------------------------------------------------------------------------------------
31)How to register a component?
-------------------------------------------------------------------------------------
Compiling the component, running REGSVR32 MyDLL.dll

-------------------------------------------------------------------------------------
32)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.

-------------------------------------------------------------------------------------
33)What is the tool used to configure the port range
and protocols for DCOM communications?
-------------------------------------------------------------------------------------
DCOMCONFIG.EXE
-------------------------------------------------------------------------------------
34)What is a Type Library and what is it's purpose ?
-------------------------------------------------------------------------------------
The type library may represent another Visual Basic
project, or any other executable
component that exposes a type library.

Visual Basic creates type library information for the
classes you create, provides type
libraries for the objects it includes, and lets you
access the type libraries provided
by other applications.


-------------------------------------------------------------------------------------
35)What are binary and project compatibility?
-------------------------------------------------------------------------------------
Visual Basic’s Version Compatibility feature is a way
of enhancing your components while
maintaining backward compatibility with programs that
were compiled using earlier versions.
The Version Compatibility box, located on the
Component tab of the Project Properties dialog box,
contains three options:
,sandhya2_001(Re)
No Compatibility:
*****************
Each time you compile the component, new type library
information is generated, including new
class IDs and new interface IDs. There is no relation
between versions of a component, and
programs compiled to use one version cannot use
subsequent versions.

Project Compatibility:
**********************
Each time you compile the component the type library
identifier is kept, so that your test
projects can maintain their references to the
component project. All class IDs from the previous
version are maintained; interface IDs are changed only
for classes that are no longer
binary-compatible with their earlier counterparts.
Note This is a change in Project Compatibility from
Visual Basic 5.0, where all class IDs and
interface IDs in the project changed if any one class
was no longer binary-compatible.

Important For the purpose of releasing compatible
versions of a component, Project Compatibility is the
same as No Compatibility.

Binary Compatibility:
*********************
When you compile the project, if any
binary-incompatible changes are detected you will be
presented
with a warning dialog. If you choose to accept the
warning, the component will retain the type
library identifier and the class IDs. Interface IDs
are changed only for classes that are no
longer binary-compatible. This is the same behavior as
Project Compatibility.
If, however, you choose to ignore the warning, the
component will also maintain the interface IDs
.This option is only available when the compiler
determines that the change was in the procedure ID or
signature of a method.

Note:: When people talk about Version Compatibility,
they’re usually referring to Binary
Compatibility.

-------------------------------------------------------------------------------------
38)How to set a shortcut key for label?
-------------------------------------------------------------------------------------
object.KeyLabel(keycode) [= string]
You would probably create the menu item as follows:
.Add "keyFile", , , "E&xit", , vbAltMask +
vbCtrlMask, vbKeyEnd
The default key label for vbKeyEnd is "End". Thus, the
shortcut string will be created
by default as "Ctrl+Alt+End".
-------------------------------------------------------------------------------------
39)Name the four different cursor and locking types in
ADO and describe them briefly ?
-------------------------------------------------------------------------------------
CURSORS::
*********
The cursor types are listed from least to most
resource intensive.
Forward Only - Fastest, can only move forward in
recordset
Static - Can move to any record in the recordset. Data
is static and never changes.
KeySet - Changes are detectable, records that are
deleted by other users are unavailable, and records
created by other users are not detected
Dynamic - All changes are visible.

LOCKING TYPES::
****************
LockPessimistic - Locks the row once after any edits
occur.
LockOptimistic - Locks the row only when Update is
called.
LockBatchOptimistic - Allows Batch Updates.
LockReadOnly - Read only. Cannot alter the data.

-------------------------------------------------------------------------------------
40)Name the different compatibility types when
creating a COM component.
-------------------------------------------------------------------------------------
No Compatibility - New GUID (Globally Unique
Identifier) created, references from other components
will not work
Project Compatibility - Default for a new component

Binary Compatibility - GUID does not change references
from other components will work
-------------------------------------------------------------------------------------
41)Why is it important to use source control software
for source code?
-------------------------------------------------------------------------------------
Modification history. Code ownership: Multiple people
cannot modify the same code at the same time.

-------------------------------------------------------------------------------------
42)List the ADO objects?
-------------------------------------------------------------------------------------
Connection - Connects to a data source; contains the
Errors collection
Command - Executes commands to the data source. The
only object that can accept parameters for a stored
procedure
Recordset - The set of data returned from the
database.

Under the ADO Command Object, The Parameters
collection. collection is responsible for input to
stored procedures?
-------------------------------------------------------------------------------------
43)What two methods are called from the ObjectContext
object to inform MTS that the transaction was
successful or unsuccessful?
-------------------------------------------------------------------------------------
SetComplete and SetAbort.
-------------------------------------------------------------------------------------
44)What is the benefit of wrapping database calls into
MTS transactions?
-------------------------------------------------------------------------------------
Aborting the transaction will undo and changes that
occur within that transaction.
This removes the possibility of stranded, or partial
data
-------------------------------------------------------------------------------------
45)Describe and In Process vs. Out of Process
component. Which is faster?
-------------------------------------------------------------------------------------
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 marshaled
across process boundaries. A single instance of an out
of process component can service many clients.

-------------------------------------------------------------------------------------
46)How would you declare and raise custom events in a
class?
-------------------------------------------------------------------------------------
a) Public Event OnVarChange();
b) RaiseEvent OnVarChange[(arg1, arg2, ... ,
argn)]
-------------------------------------------------------------------------------------
47)What is the difference between a Property Let and
Property Set procedure?
-------------------------------------------------------------------------------------
Let - for simple variable
Set - for object
-------------------------------------------------------------------------------------
48)What is the difference between ANSI and UNICODE
strings when passed as arguments to a DLL?
-------------------------------------------------------------------------------------
ANSI - one byte for a char
UNICODE - two bytes per char - works only on NT
-------------------------------------------------------------------------------------
49)What is the difference in passing values ByRef or
ByVal to a procedure?
-------------------------------------------------------------------------------------
ByRef -pass the address (for string -address of
address of first byte)
BY REF IS VERY USEFULL When the contents itself are
being modified, when there is large data.
Multiple arguments are needed to be returned, instead
they can be passed as reference.

ByVal -pass the value (for string -it is the address
of first byte)

-------------------------------------------------------------------------------------
50)What is the purpose of the DoEvents command?
-------------------------------------------------------------------------------------
Fields execution so that the operating system can
process other events. Returns number of open
forms. Useful for things like ‘cancel search’ in
windows

-------------------------------------------------------------------------------------
51)Name and define the logical tiers in a traditional
3-tiered architecture?
-------------------------------------------------------------------------------------
Presentation logic - front end (HTML, Visual Basic
forms)
Business Logic - Applications and components that
encapsulate business logic
Data end - databases to store data

-------------------------------------------------------------------------------------
52)What is the difference between a PictureBox and
Image control?
-------------------------------------------------------------------------------------
Image Control - Use this to display a picture. Use it
over the PictureBox because it takes less operating
system resources

PictureBox- While it can display pictures, it also
acts as an area on which you can print text and
graphics.
Use it for home-grown graphics or print previews
-------------------------------------------------------------------------------------
53)Under which circumstance does a VB application
ignore a Timer event?
-------------------------------------------------------------------------------------
When the system is really busy doing something else
and when DoEvents is being executed

-------------------------------------------------------------------------------------
54)What does the NewIndex property return?
-------------------------------------------------------------------------------------
Used to retrieve the index of the item most recently
added to a ListBox or ComboBox control

-------------------------------------------------------------------------------------
55)What is the purpose of the ClipControls property on
a form or container?
-------------------------------------------------------------------------------------
Returns or sets a value that determines whether
graphics methods in Paint events repaint the
entire object or only newly exposed areas. Also
determines whether the Microsoft Windows
operating environment creates a clipping region that
excludes non-graphical controls contained
by the object. Read-only at run time.

-------------------------------------------------------------------------------------
56)What is the purpose of the AutoRedraw property on a
form or container?
-------------------------------------------------------------------------------------
Setting AutoRedraw to True automatically redraws the
output from these methods in a Form object
or PictureBox control when, for example, the object is
resized or redisplayed after being
hidden by another object

-------------------------------------------------------------------------------------
57)Have you ever used Collections? Collection Classes?
-------------------------------------------------------------------------------------
A collection is a set of Repository objects that are
all connected to a common source
object via a relationship collection.
A collection provides a way to connect a group of
dependent objects with an object that ‘contains’ them.
For example, an Invoice object might have a collection
of LineItem objects.


-------------------------------------------------------------------------------------
58)What version control systems have you used?
-------------------------------------------------------
TLIB 16-Bit add-in
-------------------------------------------------------
59)? How about any other database engines?
-------------------------------------------------------
Apollo OLE DB ,Apollo Server ,Apollo SQL ,FUNCky ,R&R
Report Writer
-------------------------------------------------------
36)What kind of components can you use as DCOM
servers?
-------------------------------------------------------
actve-x components, Com
-------------------------------------------------------
37)What is a thread pool and how are the threads
within a thread pool managed?
-------------------------------------------------------
VB FREQUENTLLY ASKED QUESTIONS-3
********************************
-------------------------------------------------------------------------------------
60)Have you ever created Web Classes? ActiveX
documents? Any other web based components?
-------------------------------------------------------------------------------------




-------------------------------------------------------------------------------------
61)What are some methods you can use to send data from
one VB executable to another one?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
62)What are the differences between a standard module
and a class module?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
63)How many tabs in a tabbed dialog do you consider
appropriate?
-------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------
64)Need of zorder method?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
65)no of controls in form?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
66)Property used to add a menus at runtime?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
67)Property used to count number of items in a
combobox?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
68)property to resize a label control according to
your caption?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
69)To set the command button for ESC, Which property
needs to be changed?
-------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------
70)Type Library and what is it's purpose?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
71)VB and Object Oriented Programming ?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
72)What are the different compatibility types when we
create a COM component?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
73)What do ByVal and ByRef mean and which is the
default?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
74)What does the Implements statement do?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
75)What is OLE and DDE? Explain?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
76)What is the difference between Msgbox Statement and
MsgboxQ function?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
77)What was introduced to Visual Basic to allow the
use of Callback Functions?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
78)Which controls can not be placed in MDI?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
79)Which Property is used to compress a image in image
control?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
80)Which property of menu cannot be set at run time?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
81)Which property of textbox cannot be changed at
runtime and What's the maximum size of a textbox?
-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
82)Which tool is used to configure the port range and
protocols for DCOM communications?

Your Title