em412 using adaptive server anywhere with visual basic ali chalhoub technical support consultant...
TRANSCRIPT
![Page 1: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/1.jpg)
EM412
Using Adaptive Server Anywhere with Visual Basic
Ali ChalhoubTechnical Support ConsultantiAnywhere [email protected]
![Page 2: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/2.jpg)
Using Adaptive Server Anywhere with Visual Basic
• Visual Basic and its Three Data Interfaces.• ADO Programming Using Adaptive Server Anywhere
OLE DB Provider.• Working with Blobs.• Authenticate a Visual Basic Application.• Introduction to Windows CE.• Summary.
![Page 3: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/3.jpg)
Visual Basic and its Three Data Interfaces
Visual Basic has three methods to establish a connection with a database. These methods are:
• DAO• RDO• ADO
![Page 4: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/4.jpg)
Visual Basic and its Three Data Interfaces
• DAO (Data Access Object)• DAO was the first data access technology
introduced in Visual Basic. It is used to access desktop databases or remote databases.
• RDO (Remote Data Object)• RDO is used to access remote databases. It is
designed to work with client/server databases such as Adaptive Server Anywhere.
![Page 5: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/5.jpg)
Visual Basic and its Three Data Interfaces
• ADO (ActiveX Data Object)• ADO is an application programming interface to OLE
DB. OLE DB is a low-level interface to all types of data. That’s why it is called Universal Data Access (UDA).
• OLE DB is a data access model from Microsoft. It uses
Component Object Model (COM) interfaces that
provide applications with uniform access to data stored
in diverse information sources.
![Page 6: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/6.jpg)
Visual Basic and its Three Data Interfaces
• Why use ADO?• What is ADO Control?• How to Bind Data-Bound Control to an ADO Data
Control?
![Page 7: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/7.jpg)
Why Use ADO?
• Easy-to-use interface for data access.• Current technology• Low memory overhead, small footprint, high speed
and ease of use.
![Page 8: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/8.jpg)
Connection Flow
VB Application
DAO ADO
ODBC Direct
RDO
ODBC
ASA
MS OLE DBProvider
ASA OLE DBProvider
Jet
![Page 9: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/9.jpg)
ADO Data Control
• The ADO data control uses Microsoft ADO to quickly create connections between data-bound controls and data providers.
• Data-bound controls are any controls that feature a DataSource property.• TextBox• Labels• PictureBox• ListBox
![Page 10: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/10.jpg)
Using ADO Data Control
To add the ADO Data
control to the toolbox
• Select Components from the Project menu.
![Page 11: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/11.jpg)
Using ADO Data Control
• Select Microsoft ADO Data Control 6.0 (OLE DB).
![Page 12: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/12.jpg)
Setting up an ADO Data Control
Once the ADO Data control is
added to the toolbox, the following
should be done.
• Add the ADO control to your form.
• Set the ConnectionString property.
ADO Data Control
ADO Data ControlAdded to the Form
![Page 13: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/13.jpg)
Configuring an ADO Data Control
To establish a connection from an ADO Data Control to
Adaptive Server Anywhere database at design time, the
following should be done:• Right click the ADO control and select ADODC
Properties.
Three data source options are available to use.• Use Data Link File.• Use ODBC Data Source Name.• Use Connection String.
![Page 14: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/14.jpg)
Configuring an ADO Data Control
• Click on the dropdown list for “Use ODBC Data Source Name”.• Select ASA 7.0 Sample.
![Page 15: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/15.jpg)
Connection Flow
VB Application
ADO
ODBC
ASA
MS OLE DBProvider
ASA OLE DBProvider
![Page 16: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/16.jpg)
Configuring an ADO Data Control
• Click on the RecordSource tab.• Select adCmdTable.
ASA Engine
![Page 17: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/17.jpg)
Configuring an ADO Data Control
• Select customer table from the “Table or Stored Procedure Name” option.
• Click on Apply.• Click on OK.
![Page 18: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/18.jpg)
Binding a TextBox Control
Once the ADO properties are set correctly, you can
bind a data bound control to show data.
• Add a textbox control to the form where the ADO control was added and set the following properties:• Set DataSource to “Adodc1”.• Set DataField to “fname”.
![Page 19: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/19.jpg)
Binding a TextBox Control
1) DataSource 2) DataField
![Page 20: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/20.jpg)
Displaying Data
Once all the controls are bounded, you should be able to navigate through.
![Page 21: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/21.jpg)
Where Are We?
• Visual Basic and its Three Data Interfaces.• ADO Programming Using Adaptive Server
Anywhere OLE DB Provider.• Working with Blobs.• Authenticate a Visual Basic Application.• Introduction to Windows CE.• Summary.
![Page 22: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/22.jpg)
Adaptive Server Anywhere OLE Provider
• Introduction to ASA OLE DB Provider.• Advantage of using ASA OLE DB Provider.• Supported Platforms.• Registry Entry.• ADO Programming with Adaptive Server
Anywhere.
![Page 23: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/23.jpg)
Introduction to ASA OLE DB Provider
Adaptive Server Anywhere includes an OLE DB provider
named ASAProv. This provider is available for windows
and windows CE.
Adaptive Server Anywhere can also be accessed through
Microsoft’s OLE DB provider, MSDASQL, to be used with
the Adaptive Server Anywhere ODBC Driver.
![Page 24: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/24.jpg)
Adaptive Server Anywhere OLE Provider
• Introduction to ASA OLE DB Provider.• Advantage of using ASA OLE DB Provider.• Supported Platforms.• Registry Entry.• ADO Programming with Adaptive Server
Anywhere.
![Page 25: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/25.jpg)
Advantage of Using ASA OLE DB Provider
Why using Adaptive Server Anywhere is better than
Using Microsoft’s generic OLE DB provider?
• No need to use ODBC in your deployment if ASA OLE DB provider is used.
• Bookmark is supported when Dynamic cursor is used.
• Recordcount is supported when Dynamic cursor is used.
![Page 26: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/26.jpg)
Adaptive Server Anywhere OLE Provider
• Introduction to ASA OLE DB Provider.• Advantage of using ASA OLE DB Provider.• Supported Platforms.• Registry Entry.• ADO Programming with Adaptive Server
Anywhere.
![Page 27: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/27.jpg)
Supported Platform
• The ASA OLE DB provider works with ADOCE 3.0 and later.
• ADOCE 3.0 is included in the new Windows CE 3.0 devices, such as PocketPC.
![Page 28: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/28.jpg)
Adaptive Server Anywhere OLE Provider
• Introduction to ASA OLE DB Provider.• Advantage of using ASA OLE DB Provider.• Supported Platforms.• Registry Entry.• ADO Programming with Adaptive Server
Anywhere.
![Page 29: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/29.jpg)
Registry Entry
• When the ASAProv provider is installed, it registers itself. The ASAProv is registered under the following key: HKEY_CLASSES_ROOT\ASAProv
• If you change the location of your DLL, you must reregister it
![Page 30: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/30.jpg)
Registry Entry
To register the OLE DB provider:
1. Open a command prompt ( DOS prompt)
2. Change to the directory where the OLE DB provider is installed. (Default C:\Program Files\Sybase\SQL Anywhere 7\win32)
3. Enter the following command to register the provider:
Regsvr32 dboledb7.dll
![Page 31: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/31.jpg)
Adaptive Server Anywhere OLE Provider
• Introduction to ASA OLE DB Provider.• Advantage of using ASA OLE DB Provider.• Supported Platforms.• Registry Entry.• ADO Programming with Adaptive Server
Anywhere.
![Page 32: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/32.jpg)
ADO Programming with Adaptive Server Anywhere
• Connecting to a database using the connection object.
• Executing statements with the command object.• Working with stored procedures.• Working with Recordset object.
![Page 33: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/33.jpg)
Connecting to a Database Using the Connection Object
In order to connect to
Adaptive Server Anywhere
you must have at least the
user id, password and
provider. Check the following
table:
ConnectionString Value
Provider ASAProv
UID User ID
PWD User Password
ENG Server Name
DBF Database File
DBN Database Name
Links=tcpip{} host=x.x.x.x
DSN Data Source Name
![Page 34: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/34.jpg)
Connecting to a Database with the Connection Object
Before the connection can be
established, a reference to the
ADO library must be set. To set the
reference to the library.
The following should be done:
• Select References from the Project Menu.
• Set a reference to the Microsoft ActiveX Data Object 2.x Library (i.e ActiveX Data Object 2.6 ).
![Page 35: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/35.jpg)
Connecting to a Database with the Connection Object
Option Explicit
Dim adoConn as new ADODB.connection
Private Sub cmdConnect_Click()
adoConn.Provider = “ASAProv”
adoConn.ConnectionString= “uid=dba;pwd=sql;dbf=“ & app.path & “\asademo.db”
adoConn.Open
End Sub
![Page 36: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/36.jpg)
ADO Programming with Adaptive Server Anywhere
• Connecting to a database using the connection object.
• Executing statements with the command object.• Working with stored procedures.• Working with Recordset objects.
![Page 37: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/37.jpg)
Executing Statements with the Command Object
Option Explicit
Dim adoConn as new ADODB.connection
Private Sub cmdConnect_Click()
Dim adoCmd As New ADODB.Command
Set adoCmd.ActiveConnection = adoConn
adoCmd.CommandText = "INSERT INTO department VALUES(600,'Accounting',1090)"
adoCmd.CommandType = adCmdText
adoCmd.Execute
End Sub
![Page 38: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/38.jpg)
Prepared Statement
• Improved performance• The first time the SQL statement is executed
• it is parsed and the parsed tree is saved in the engine.
• At this point, the optimizer generates the execution plan.
• Correctness of all referenced database objects is verified
• On subsequent calls, this “ground work” does not have to be repeated
![Page 39: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/39.jpg)
Command Object with Prepared Statement
Dim adoCmd As New ADODB.CommandSet adoCmd.ActiveConnection = adoConnadoCmd.CommandText = "UPDATE employee set emp_fname=?, emp_lname=? WHERE emp_id=?"adoCmd.CommandType = adCmdTextadoCmd.Prepared = True
Dim prmEmpFName As New ADODB.ParameterSet prmEmpFName = adoCmd.CreateParameter("EmpFName", adChar, adParamInput, 20,txtFirstName.text)adoCmd.Parameters.Append prmEmpFName
Dim prmEmpLName As New ADODB.ParameterSet prmEmpLName = adoCmd.CreateParameter("EmpLName", adChar, adParamInput, 20,txtLastName.text)adoCmd.Parameters.Append prmEmpLName
Dim prmEmpID As New ADODB.ParameterSet prmEmpID = adoCmd.CreateParameter("EmpID", adInteger, adParamInput, ,val(txtEmpID.text) )adoCmd.Parameters.Append prmEmpID
![Page 40: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/40.jpg)
Command Object with Prepared Statement
Private Sub cmdUpdate_Click()
adoCmd("EmpFName") = txtFirstName.Text
adoCmd("EmpLName") = txtLastName.Text
adoCmd("EmpID") = Val(txtEmpID.Text)
adoCmd.Execute
MsgBox "Successfully Updated!"
End Sub
![Page 41: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/41.jpg)
ADO Programming with Adaptive Server Anywhere
• Connecting to a database using the connection object.
• Executing statements with the command object.• Working with stored procedures.• Working with Recordset objects.
![Page 42: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/42.jpg)
Working with Stored Procedures
What is a stored procedure?
• Stored procedure is procedure kept in the database itself which can be called from client application.
• Stored procedure provides a way of providing uniform access to functions automatically, as the procedure is held in the database, not in each client application.
![Page 43: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/43.jpg)
Working with Stored Procedures
CREATE PROCEDURE sp_retrieve_contacts()RESULT(id integer,last_name char(15),first_name char(15),title char(2),street char(30),city char(20),state char(2),zip char(5),phone char(10),fax char(10))
BEGIN
SELECT id,last_name,first_name,title,street,city,state,zip,phone,fax FROM contact ORDER BY contact.id asc;
END
![Page 44: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/44.jpg)
Working with Stored Procedures
Private Sub cmdExecuteProcedure_Click()
Dim adoRS As New ADODB.Recordset
adoRS.Open "sp_retrieve_contacts", adoConn, adOpenStatic, adLockReadOnly, adCmdStoredProc
adoRS.MoveFirstSet grdData.DataSource = adoRSgrdData.Refresh
End Sub
![Page 45: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/45.jpg)
Error Handling
Private Sub ErrorHandler()Dim adoErr as ADODB.Error
For Each adoErr In adoConn.Errors strErr = strErr & " Description : " & adoErr.Description & vbCrLf & vbCrLf & _ " SQL CODE : " & adoErr.NativeError & vbCrLf & vbCrLf & _ " SQL STATE : " & adoErr.SQLState & vbCrLf
Next
MsgBox strErr, vbCritical + vbOKOnly, "Error Connecting"End Sub
![Page 46: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/46.jpg)
ADO Programming with Adaptive Server Anywhere
• Connecting to a database using the connection object.
• Executing statements with the command object.• Working with stored procedures.• Working with Recordset objects.
![Page 47: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/47.jpg)
Working with Recordset Object
What is a Recordset?• ADO Recordset is a set of rows.
• ADO Recordset allows you to set the CursorType property, before you open it.
• Check the ASA User’s Guide for “Types of Cursor”
![Page 48: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/48.jpg)
Working with Recordset Object
Recordset Open method syntax:
Recordset-object.Open source, ActiveConection, CursorType, LockType,Options
Source It could be in-line SQL, stored procedure or
table name.
ActiveConnection It tells the open method how to access the
database.
CursorType It tells the database what cursor to use when
opening the Recordest.
![Page 49: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/49.jpg)
Working with Recordset Object
ADO Cursor Type ADO constant Adaptive Server Anywhere type
Dynamic cursor adOpenDynamic Dynamic scroll cursor
Keyset cursor adOpenKeyset Scroll cursor
Static cursor adOpenStatic Insensitive cursor
Forward only adOpenForwardOnly No-scroll cursor
![Page 50: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/50.jpg)
Cursor Types
• SCROLL cursors remember both rows and row positions within a cursor, so your application can be assured that these positions remain unchanged.
• DYNAMIC SCROLL cursors are more efficient than SCROLL cursors because they store less information. Therefore, use DYNAMIC SCROLL cursors unless you require the consistent behavior of SCROLL cursors.
• INSENSITVE cursors has its membership fixed when it is opened; and a temporary table is created with a copy of all the original rows. Fetching from an INSENSITIVE cursor does not see the effect of any other operation from a different cursor.
• No Scroll cursors restricts fetching operations to fetching the next row or the same row again.
• Check session AM33 regarding cursors.
![Page 51: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/51.jpg)
Working with Recordset Object
Recordset Open method syntax:
Recordset-object.Open source, ActiveConection, CursorType, LockType, Options
LockType It specifies the type of locking the database
should use on the record set when editing of
records occurs.
Options It tells the database what type the source is.
(I.e adCmdTable, adCmdText,etc..)
![Page 52: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/52.jpg)
Working with Recordset Object
Locking types are:• Optimistic Locking: The lock is done on row by
row basis, when Update is called.• Batch Optimistic Locking: The lock occurs when
UpdateBatch is called.• Pessimistic Locking: The lock is done on the
edited records at the data source.• Read Only Locking: There is no Locking and
the data can’t be changed.• Check session EM407 regarding locking.
![Page 53: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/53.jpg)
Working with Recordset Object
Private Sub cmdOpenRecordSet_Click()
On Error GoTo cmdOpenDoubleRecordSet_Err
Call GetEmployeesAndDept
Call LoadEmployeeName
Set adoRS = adoRS.NextRecordset
Call LoadDept
Call CloseRecordSet
Exit Sub
cmdOpenDoubleRecordSet_Err:
Call ErrorHandler
End Sub
![Page 54: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/54.jpg)
Working with Recordset Object
CREATE PROCEDURE DBA.GetEmployeesAndDept()
BEGIN
SELECT emp_fname FROM employee;
SELECT dept_name FROM department;
END
![Page 55: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/55.jpg)
Working with Recordset
Private Sub GetEmployeesAndDepat()
On Error GoTo getEmpAndDept_err
Set adoRS = New ADODB.Recordset
adoRS.Open "call GetEmployeesAndDept()", adoConn, adOpenStatic, adLockReadOnly, adCmdText
Exit Sub
getEmpAndDept_err:
Call ErrorHandler
End Sub
Private Sub LoadEmployeeName() lstEmployee.Clear Do While Not adoRS.EOF lstEmployee.AddItem adoRS!emp_fname adoRS.MoveNext Loop End Sub
Private Sub LoadDept() lstDept.Clear Do While Not adoRS.EOF lstDept.AddItem adoRS!Dept_name adoRS.MoveNext Loop End Sub
![Page 56: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/56.jpg)
Where Are We?
• Visual Basic and its Three Data Interfaces.• Introduction to OLE DB and ADO.• ADO Programming Using Adaptive Server Anywhere
OLE DB Provider.• Working with Blobs.• Authenticate a Visual Basic Application.• Introduction to Windows CE.• Summary.
![Page 57: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/57.jpg)
Working with BLOBS
![Page 58: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/58.jpg)
Working with Recordset Object
Private Sub cmdFetchDirect_Click()
If Len(txtPictID.Text) > 0 Then
adors.Open "select id, logo from logos where id =" & CInt(txtPictID.Text), adoconn, adOpenDynamic, adLockOptimistic
If adors.BOF And adors.EOF Then
MsgBox "no record founds"
Else
Set pctImage.DataSource = adors
pctImage.DataField = adors.Fields.Item(1).Name
End If
adors.Close
Set adors = Nothing
End If
End Sub
Private Sub cmdSave_Click()
On Error GoTo showError
If Len(txtpath.Text) <> 0 Then
adocmd.ActiveConnection = adoconn
adocmd.CommandText = " INSERT INTO logos(logo) SELECT xp_read_file('" & txtpath.Text & "' )"
adocmd.Execute
MsgBox "Successfully Inserted"
End If
Exit Sub
showError:
MsgBox "Failed to insert"
End Sub
![Page 59: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/59.jpg)
Working with Recordset Object
Private Sub cmdSavedDirect_Click()
Dim bytChunk() As Byte
Open txtpath.Text For Binary As #1
ReDim bytChunk(FileLen(txtpath.Text))
Get #1, , bytChunk()
adors.Open "logos", adoconn, adOpenKeyset, adLockPessimistic, adCmdTable
adors.AddNew
adors!logo.AppendChunk bytChunk
adors.Update
adors.Close
Set adors = Nothing
MsgBox "Successfully Inserted!"
Close #1
End Sub
![Page 60: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/60.jpg)
Working with Long VarChar
Dim strLog As String
Set adoCmd = New ADODB.Command
'Escape Character
‘Replace(txtDoc.Text, " ' ", " ' ' ", , , vbTextCompare)
strLog = Replace(txtDoc.Text, "'", "''", , , vbTextCompare)
adoCmd.ActiveConnection = adoConn
adoCmd.CommandText = "INSERT INTO logs(lognote, logdate) VALUES('" & strLog & "','" & Format(clnDate.Value, "mm-dd-yyyy") & "')"
adoCmd.CommandType = adCmdText
adoCmd.Execute
• Saving data of type Long VarChar
Replace(expression, find, replace[, start[, count[, compare]]])
![Page 61: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/61.jpg)
Where Are We?
• Visual Basic and its Three Data Interfaces.• Introduction to OLE DB and ADO.• ADO Programming Using Adaptive Server Anywhere
OLE DB Provider.• Working with Blobs.• Authenticate a Visual Basic Application.• Introduction to Windows CE.• Summary.
![Page 62: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/62.jpg)
Authentication
• The Authenticated Edition of ASA is provided for Sybase Commercial Application Partners.
• Applications that use the authenticated engine/server, and are not authenticated, are limited in the functions they can carry out.
• Every connection must be authenticated and has thirty second grace period before the restrictions apply.
• Authentication is not a security device.
![Page 63: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/63.jpg)
Authentication
![Page 64: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/64.jpg)
Authentication
Function Authenticate(tempadoConn As ADODB.Connection) As Boolean Dim adoCmd As New ADODB.Command adoCmd.CommandText = ConnectionSignature adoCmd.CommandType = adCmdText adoCmd.ActiveConnection = tempadoConn adoCmd.Execute Authenticate = TrueEnd Function
Const ConnectionSignature As String = "SET TEMPORARY OPTION CONNECTION_AUTHENTICATION='Company=Sybase;Application=BlobsTech;Signature=000fa55157edb8e14d818eb4fe3db41447146f1571g533e0aa19a7cb78153e4…'"
SET OPTION PUBLIC.DATABASE_AUTHENTICATION='Company=Sybase;Application=BlobsTech;Signature=010fa55157edb8e14d818eb4fe3db41447146f1571g0b8e0330…'
VB
DB
VB
Connection
![Page 65: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/65.jpg)
Where Are We?
• Visual Basic and its Three Data Interfaces.• Introduction to OLE DB and ADO.• ADO Programming Using Adaptive Server Anywhere
OLE DB Provider.• Working with Blobs.• Authenticate a Visual Basic Application.• Introduction to ADOCE.• Summary.
![Page 66: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/66.jpg)
Introduction to ADOCE
• What is ADOCE?• ADOCE Programming with Adaptive Server
Anywhere.
![Page 67: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/67.jpg)
What is ADOCE?
• ADOCE is a subset of ADO.
• Microsoft has released a new IDE, eVB, to develop for Windows CE.
![Page 68: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/68.jpg)
Adaptive Server Anywhere OLE Provider
• Connecting to an ASA Engine.• Creating Recordsets.• Navigating Recordsets.
![Page 69: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/69.jpg)
Connecting to an ASA Engine
1. Create a DSN file.
2. Place the DSN on the root of the CE device.
3. Create the connection string.
[ODBC]
uid=dba
pwd=sql
enginename=blob
databasename=blob
databasefile=\image\blob.db
start=\program files\sybase\asa\dbsrv7.exe
Image.dsn
![Page 70: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/70.jpg)
Connecting to ASA Engine
Private Sub cmdConnect_Click()
If (ConnectToSybaseDatabase("image")) Then MsgBox "Connected Successfully!"End If
End Sub
![Page 71: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/71.jpg)
Connecting to ASA Engine
Option Explicit
Dim Connection
Function ConnectToSybaseDatabase(DSNname)
'Create the ADOCE connection object
Set Connection = CreateObject("ADOCE.connection.3.1")
'Open the ASA provider
Connection.Open "Provider=ASAProv;Data Source=" & DSNname
ConnectToSybaseDatabase = True
End Function
![Page 72: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/72.jpg)
Working with Recordset on CE
Dim RecSet
Private Sub FetchData()
Set RecSet = CreateObject("ADOCE.RecordSet.3.1")RecSet.Open "call sp_retrieve_contacts()", Connection, adOpenKeyset, adLockReadOnly, adCmdText
RecSet.MoveFirstCall loadData
End Sub
![Page 73: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/73.jpg)
Navigating Recordsets
Private Sub loadData()
txtfname.Text = RecSet.Fields(“first_name”).Valuetxtlname.Text = RecSet.Fields(“last_name”).ValuetxtAddress.Text = RecSet.Fields(“street”).Value
End If
Private Sub cmdPrevious_Click()RecSet.MovePreviousIf RecSet.BOF Then RecSet.MoveNextEnd IfCall loadDataEnd Sub
Private Sub cmdNext_Click()
RecSet.MoveNext
If RecSet.EOF Then
RecSet.MovePrevious
End If
Call loadData
End Sub
![Page 74: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/74.jpg)
Error Handler
• VBCE doesn’t allow you to have goto label.• ADOCE doesn’t allow you to loop through your error object.
On Error Resume Next
If Err.Number <> 0 then MsgBox “ Error : “ & Err.NumberErr.Clear
End If
![Page 75: EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions achalhou@sybase.com](https://reader035.vdocuments.mx/reader035/viewer/2022062304/56649ed35503460f94be3c26/html5/thumbnails/75.jpg)
Summary
• ADO, DAO and RDO are the three methods to connect to a desktop or network server database.
• ASA provider has benefit over the Microsoft provider.
• Authentication engine requires every connection to be authenticated.
• ASA supports ADO and ADOCE.
• ADOCE doesn’t support bound control property.
• ADOCE is different from the ADO error handler.