Gambas Documentation
Application Repository
Code Snippets
Compilation & Installation
Components
Controls pictures
Deprecated components
Developer Documentation
Development Environment Documentation
Documents
Error Messages
Gambas Playground
How To's
How To Change the Tab Order of GUI Controls
How To Contribute
How to Create and Open a ".gmail.txt" Archive
How to deal with Git and Gitlab concerning your Project
How to deal with Git and Gitlab for Gambas
How To Deal With Subversion for Gambas
How To Display a Chinese Character
How To Draw with gb.Cairo
How To Enter Data With gb.db.form
How To Get Gambas Web Started (1)
How To Get Started
How To Interface Gambas With External Libraries
How To make a chart with the gb.chart component
How to make a report with Gambas
How To Make KDE Run Gambas Executables Automatically
How To Open, Debug & Compile The IDE
How To Open a MySQL connection and use it
How To Open a SQLite connection and use it
How To Open a Unix ODBC connection and use it
How To Package Gambas
How To Package your Project
How To Print
How to Run Gambas and Gambas Apps on Windows using WSL
How To Run Gambas On Windows using Cygwin
How To Translate A Gambas Project
How To Translate Gambas
How To Translate The Gambas IDE (deprecated)
How To Use Parallel Port
Language Index
Language Overviews
Last Changes
Lexicon
README
Search the wiki
To Do
Topics
Tutorials
Wiki License
Wiki Manual

How To Open a MySQL connection and use it

Example 1. Create a new MySQL connection

Notes

  1. You should have already installed the gb.mysql and all MySQL related packages.

  2. This is not an example about SQL (MySQL or otherwise) statements.

  3. The privileges to a database are granted by the MySQL administrator to the MySQL user and are not controlled by Gambas.

  4. The gb.db component has to be selected for use in your project before your program can access the DataBase Engine.

Recommendations

  1. The database connection of your program should be placed in a Module, so it can be called from anywhere.

  2. The gambas-database-manager is great, However if you want to create a good database in MySQL you should use the MySQL console or MySQL Workbench, these will help prevent potential problems dealing with Data Types.

Steps

1.Create a new Module for you program, this example uses MODMain as the Module name.

2.Create a new variable for the connection:

PUBLIC $Con AS NEW Connection

3.Now create a Procedure to make the connection:

PUBLIC PROCEDURE Connect() $Con.Close() ' Close the connection $Con.Type = "[..../def/mysql]" ' Type of connection $Con.Host = "localhost" ' Name of the server $Con.Login = "root" ' User's name for the connection $Con.Port = "3306" ' Port to use in the connection, usually 3306 $Con.Name = "Sophia" ' Name of the database we want to use $Con.Password = "root123" ' User's password $Con.Open() ' Open the connection END
4.Now create a Procedure to start the program:

PUBLIC SUB Main() Connect() ' Run the Procedure to connect FRMStart.Visible = TRUE ' The main form of your program END

5.If you want to execute a query to return everything database only write:

MODMain.$Con.Exec(“SELECT * FROM mysql.user”)

6.You can create queries with information supplied by the user, just do something like this:

PUBLIC PROCEDURE SearchName() DIM $Query AS String $Query = “SELECT * FROM Friends WHERE Name = '” & TBXName.Text & “'” MODMain.$Con.Exec($Query) END


Example 2. Dealing with results (SELECTS).

Notes:

1.You should have read the Notes and Recommendations from Example 1.
2.Gambas has a special Data Type to deal with query's results, it is called Result.

Steps:

1.Let's suppose the Table Friends has the following fields:

       FirstName
       SecondName
       Address
       Phone

2.Store the query's result into a variable:

PUBLIC PROCEDURE SearchName() DIM $Query AS String DIM $Result AS Result DIM $Phone AS String

$Query = “SELECT * FROM Friends WHERE Name = '” & TBXName.Text & “'” $Result = MODMain.$Con.Exec($Query) $Phone = $Result!Phone Message.Info($Phone) END

3.If you want to create a printable report, you can put the query's result into a File using the html format, so you can open it using a Web Browser.


Example 3. Transactions.

Notes:

1.You should have read the Notes and Recommendations from Examples 1 and 2.

Steps:

1.Let's suppose we want to add a new record into the Table Friends:

DIM $Result AS Result

MODMain.$Con.Begin() $Result = MODMain.$Con.Create(“Friends”) $Result!FirstName = TBXName.Text $Result!SecondName = TBXName2.Text $Result!Address = TBXAddress.Text $Result!Phone = TBXPhone.Text $Result.Update]() MODMain.$Con.Commit()

2.You should be careful with the Data Types, of course you can't save a String into a Integer.