# MySQLDB COM Library

## Introduction:

MySQLDBLib is a project to create a COM Database library to access MySQL databases. Currently only the Connection object is working. This object will allow you to execute queries and navigate the result sets. Only forward navigation is enabled, but caching the results on the client may overcome this restriction. There is an example application in Visual Basic which creates a client side recordset and caches the results.

The library implements dual interfaces, so you can instance it by using the

Server.CreateObject("MySQLDB.Connection") function.

I have tested it in Visual Basic, but not on IIS. If someone is willing to do it and give me feedback, it will be very helpful.

### Installation :

I have included a installation file in the package, but if it doesn't work, run the regCom.bat file in the VB application directory that comes with the install.. It will register the Atl.dll and MySQLDB.dll required to use the library. The Install program puts the Atl.dll,MySQLDB.dll and libmysql.dll in the windows system directory. If you want you can move MySQLDB.dll, MySQLDB.lib, libmysql.dll to another directory but not the ATL.dll. Also make sure you make the appropriate changes to the regCOM.bat file before you run it.

Ex:

If you move the atl.dll, MySQLDB.dll to c:\App then change the following line from regCom.atl

\windows\system\regsvr32.exe \windows\system\Atl.dll

\windows\system\regsvr32.exe \windows\system\MySQLDB.dll

to

\windows\system\regsvr32.exe \windows\system\Atl.dll

\windows\system\regsvr32.exe C:\App\MySQLDB.dll

Then run regCom.bat. That should register all the components.

### Function Table for Visual Basic, VBScript users

Name | Function Type | Description | Usage
Host | Property (String) | Sets the host on which mysql server is running. | Connection.Host = "mysql.db.com" or Connection.Host = "123.34.232"
Username | Property (String) | sets the username for the connection. | Connection.Username = "User1"
Password | Property (String) | sets the password for the connection. | Connection.Password = "pwd1"
Database | Property (String) | sets the database to be opened. | Connection.Database ="testdb"
Port | Property (Short) | sets the port to connect to. | Connection.Port = 2323
Connect | Method | opens a connection to the mysql server. |
Open | Method | Opens a database specified by the Database property. Call Open after first connecting to the server by calling connect. You can change a database by changing the database property and then calling Open. | Connection.Open
ExecuteInt(sqlString as String) | Method | Executes the sqlString passed to it. | Connection.ExecuteInt("Select * from host")
FieldCount | Property(Short) | Returns the number of fields in the result set | i = Connection.FieldCount
RowCount | Property(Short) | Returns the number of rows in the result set | i = Connection.RowCount
BOF | Property (Bool) | Start of the result set | bofVal = Connection.BOF
EOF | Property (Bool) | End of the result set | eofVal = Connection.EOF
NextRow | Method | Moves the Cursor to the next row in the result set | Connection.NextRow
GetItem(i) | Method | returns the i'th item from the current row as a string. | Dim abc as String sbc = Connection.GetItem(2)
FieldProperty(i,"Property Type") | Method | Returns the property value of the i'th field in the result set. The property types can be "fieldLength", "fieldType" and "fieldName" . | Dim abc as String abc = Connection.FieldProperty(1,fieldName)
Close | Method | Closes the connection to the server | Connection.Close

Please the example project in Visual Basic to see how the results can be cached on the client side using the Connection Object. The myDBConnection class is a wrapper around the MySQLDBLib.Connection object. The Record and RecordSet objects are used to cache the results on the client side.