如何打开并使用一个MySQL连接
示例1. 创建一个新连接(MySQL)。
注意:
-
应该已经安装gb.mysql (../../comp/gb/component)和所有MySQL依赖包。
-
这不是关于MySQL指令的示例。
-
一个数据库的权限是由MySQL而非Gambas授予的。
-
为使程序能访问数据库引擎,必须选中gb.db。
推荐:
-
程序的数据库连接应该被放在一个模块(Module)中,那么就能从任何地方调用它。
-
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。