VisualFreeBasic链接mysql数据库用法
VisualFreeBasic:类似VisualBasic6的FreeBasic语言集成开发环境http://www.yfvb.com/soft-48.htm原作者vfb连接数据库有sqlite和access例子,我想常用的mysql也链接下试试吧,最后发现链接字符串不对头,那就先找vb6代码联通试试网上找来代码提示报错变量未定义Dim Conn As New ADODB.connection根据
VisualFreeBasic:类似VisualBasic6的FreeBasic语言集成开发环境
http://www.yfvb.com/soft-48.htm
原作者vfb连接数据库有sqlite和access例子,我想常用的mysql也链接下试试吧,最后发现链接字符串不对头,那就先找vb6代码联通试试
网上找来代码提示报错 变量未定义
Dim Conn As New ADODB.connection
根据网上解说,菜单-工程-引用Microsoft ActiveX Data Objects 2.x Library
ado技术发展多年,有很多个版本了,都能用,不过我还是用了比较新的版本6.1的
然后发网上找了mysql的驱动
https://www.cr173.com/soft/50794.html
记得安装32位吧,vb6是太古老的技术,64位估计不顺畅
然后链接字符串还是不对,在vb6工具箱 右键 选部件 ,控件列表里 选择 microsoft ado data control 6.0(sp6)
这个控件的ConnectionString属性就是Conn的ConnectionString
图形界面点击属性,刚开始选了数据源试了成功,后来摸索着直接字符串,也成功了。当然最后连接数据其实不需要这个控件就可以,用这个控件主要就是帮忙生成链接字符串。当年vb6那么风靡就是因为太好用了,各种控件点点就好了,要是纯代码,想破脑袋也不知道连接代码什么写法。
Dim strCon$ '不需要设置dsn直接使用
Dim strCn$ '设置dsn用法
strCn = "Provider=MSDASQL.1;Password=root;Persist Security Info=True;User ID=root;Data Source=db1;OPTION=3;"
strCon = "Provider=MSDASQL.1;Persist Security Info=True;Extended Properties=""Driver=MySQL ODBC 8.0 Unicode Driver;SERVER=192.168.1.100;UID=root;DATABASE=db1;PORT=3306;pwd=root"""
Dim Conn As New ADODB.connection
With Conn
If .State = adStateOpen Then .Close
.ConnectionString = strCon
.CommandTimeout = 15
.Open
End With
' 设置该属性, 使 recordcount 和 absolutepage 属性可用
Conn.CursorLocation = adUseClient
If Conn.State = adStateOpen Then
MsgBox "连接成功", vbOKOnly, "提示"
Else
MsgBox "连接失败", vbOKOnly, "提示"
End If
Conn.Close
知道了vb6的写法,搬到vfb里就ok了
#include "Afx/CADODB/CADODB.inc"
'// 打开连接
Dim pConnection As CAdoConnection Ptr = NEW CAdoConnection
' 如果配置dsn Provider=MSDASQL.1;Password=root;Persist Security Info=True;User ID=root;Data Source=dsly;OPTION=3;
pConnection->ConnectionString = "Provider=MSDASQL.1;Persist Security Info=True;Extended Properties=""Driver=MySQL ODBC 8.0 Unicode Driver;SERVER=192.168.1.100;UID=root;DATABASE=db1;PORT=3306;pwd=root"""
PRINT pConnection->ConnectionString
pConnection->Open
'pConnection->Open "Provider=Microsoft.Jet.OLEDB.4.0;Password=root;User ID=root;Data Source=service.mdb;"
'// 打开记录集
Dim pRecordset As CAdoRecordset
'// 将光标位置设置到客户端对于获取断开的记录集非常重要
pRecordset.CursorLocation = adUseClient
PRINT pRecordset.State
'// 打开记录集
Dim cvSource As CVAR = "SELECT * FROM i_user"
pRecordset.Open(cvSource, pConnection, adOpenKeyset, adLockOptimistic, adCmdText)
'// 通过将其活动连接设置为空来断开记录集。
'// 投射到Afx_ADOConnection PTR需要获得正确的重载方法;
'// 否则,CVAR版本将被调用并且会失败。
pRecordset.ActiveConnection = Cast(Afx_ADOConnection Ptr, Null)
'// 关闭并释放连接
Delete pConnection
list1.Clear()
'// 解析记录集
Do
'// 测在不在记录集的末尾...
If pRecordset.EOF Then Exit Do
'// 获取“用户名”列的内容
dim ss as String = pRecordset.Collect("user_name")
PRINT ss
list1.AddItem(ss)
'// 取下一行
If pRecordset.MoveNext <> S_OK Then Exit Do
Loop
更多推荐
所有评论(0)