如何打开并使用一个MySQL连接

示例1. 创建一个新连接(MySQL)。

注意:

1.应该已经安装gb.mysql (../../comp/gb/component)和所有MySQL依赖包。
2.这不是关于MySQL指令的示例。
3.一个数据库的权限是由MySQL而非Gambas授予的。
4.为使程序能访问数据库引擎,必须选中gb.db

推荐:

1.程序的数据库连接应该被放在一个模块(Module)中,那么就能从任何地方调用它。
2.gambas-database-manager很棒!但是如果想在MySQL中创建一个好的数据库,应该使用MySQL控制台,这将会避免处理数据类型的一些问题。

步骤:

1.为程序创建一个新模块,命名为*MODMain*。

2.为连接创建一个新变量:

PUBLIC $Con AS NEW Connection

3.创建一个过程来生成连接:

PUBLIC PROCEDURE Connect() $Con.Close() ' 关闭连接 $Con.Type = "[..../def/mysql]" ' 连接类型 $Con.Host = "localhost" ' 服务器名称 $Con.Login = "root" ' 使用连接的用户名 $Con.Port = "3306" ' 连接使用的端口,通常是3306 $Con.Name = "Sophia" ' 想使用的数据库名称 $Con.Password = "root123" ' 用户口令 $Con.Open() ' 打开连接 END

4.创建一个过程来启动程序:

PUBLIC SUB Main() Connect() ' 运行连接过程 FRMStart.Visible = TRUE ' 程序主窗口可见 END

5.如果想在数据库中执行一个查询,只需这样写:

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

6.可以创建依据用户提供的信息的查询,只需像下面这样做:

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


示例2. 处理结果(SELECTS)

注意:

1.你应该已经阅读了示例1中的注意和推荐。
2.Gambas有一个用来处理查询结果的特定数据类型,Result调用它。

步骤:

1.假设Friends 有下列字段(Field):

       FirstName
       SecondName
       Address
       Phone

2.将查询结果保存到一个变量:

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.如果想创建一个可以打印的报表,可以用html格式将查询结果保存到File,那么可以用Web浏览器打开它。


示例3. 事务处理

注意:

1.你应该已经阅读了示例1、示例2中的注意和推荐。

步骤:

1.假设想添加一条新记录到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.要小心数据类型,当然不能将String存入Integer