Documente Academic
Documente Profesional
Documente Cultură
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 is 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.
ActiveX and Types of ActiveX Components in VB ?
Standard EXE
ActiveX EXE
ActiveX DLL
ActiveX document
ActiveX Control
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.
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.
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.
What is a Component?
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 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
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:
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.
What are Benefits 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.
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.
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.
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.
connect property……
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.
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.
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.
In addition, on some platforms, the functions are available immediately; whereas, the subroutines
are available in a special subroutine library that you must access.
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.
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.
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).
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.
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
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.
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.
Connection,Container,Database,DBEngine,Document,Error,Field,Group,Index
Parameter Property,QueryDef,Recordset,Relation,TableDef,User,Workspace
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
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.
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));
// 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 attribute of a script component’s
<registration> 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”:
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
What is the tool used to configure the port range and protocols for DCOM communications?
DCOMCONFIG.EXE
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.
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.
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.
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”.
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.
No Compatibility - New GUID (Globally Unique Identifier) created, references from other
components will not work Project Compatibility - Default for a new component <Not as critical
to mention this one>
Binary Compatibility - GUID does not change references from other components will work
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.
What two methods are called from the ObjectContext object to inform MTS that the transaction
was successful or unsuccessful?
SetComplete and SetAbort.
What is the difference between a Property Let and Property Set procedure?
Let - for simple variable
Set - for object
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
What is the max size allowed for Msgbox Prompt and Input Box?
1024
Where will we give the option explicit keyword and for what?
In the general declarations section. To trap undeclared variables.
With in the form we want to check all the text box control are typed or not? How?
For each currentcontrol in controls if typeof currentcontrol is TextBox then end if next
What is control array and How many we can have it with in the form?
Group of control share the same name. Max 32, 767.What is the default model of the form? And
what is it number?
VbModaless – 0 (Zero) – We can able to place another window above this form.
What is Dll?
Libraries of procedure external to the application but can be called from the application.
What is Tabstrip control? What is the starting Index value? How to locate it?
It is tab control to place our controls with in the form in multiple sheets.
Index starts with 1. And to identify
If Tabstrip1.SelectedItem.Index = 1 Then
…..
End if
What is the diff between the Create Object and Get object?
Create Object - To create an instance of an object.
Get Object – To get the reference to an existing object.
Have you create Properties and Methods for your own Controls?
Properties – Public variable of a Class
Method – Public procedure of a classWhat is Collection Objects?
Similarly to arrays but is preferred over an array because of the following reasons.
1. A collection objects uses less Memory than an array.
2. It provides methods to add and delete members.
3. It does not required reason statement when objects are added or deleted.
4. It does not have boundary limitations.
What is Implicit?
Instance of specific copy of a class with its own settings for the properties defined in that class.
Note: The implicity defined variable is never equal to nothing.
How can we call Stored procedure of Back End in RDO and ADO ?
In RDO – We can call using RDO Query Objects.
In ADO – We can call using Command Objects.
What is the different between Microsoft ODBC Driver and Oracle OBDC Driver?
Microsoft ODBC driver will support all the methods and properties of Visual Basic. Where as
the Oracle not.
What are the Technologies for Accessing Database from Visual Basic?
DAO, Data Control, RDO, ODBCDIRECT, ADO, ODBC API.
Calling Stored Procedures in VB?
1. Calling Simply the Procedure with out Arguments “Call ProcedureName}”
To connect the Data Control with Back end What are all the properties to be set?
Data source Name, Record Source Name
What is DBSqlPassThrough?
It will By Passing the Jet Query Processor.
What is DBFailError?
Rolls Back updates if any errors Occurs.
What is RdExecDirect?
Bypasses the Creation of a stored procedure to execute the query. Does not apply to Oracle.