vb连接mysql

环境:xp+vb6+mysql-5.6.13-win32+mysql-connector-odbc-5.2.5-win32


一、首先要下载MysqL,其次要下载MysqL的odbc驱动。
odbc驱动的安装很简单,双击就可执行。
MysqL不用安装,解压就行。但它的服务的启动比较麻烦,需要用到cmd,下面是我电脑上的启动过程:


1、
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>cd c:\

C:\>cd mysql-5.6.13-win32

C:\mysql-5.6.13-win32>cd bin

C:\mysql-5.6.13-win32\bin>MysqLd
2014-03-25 09:18:18 0 [Warning] TIMESTAMP with implicit DEFAULT value is depreca
ted. Please use --explicit_defaults_for_timestamp server option (see documentati
on for more details).
启动之后,cmd窗口就卡在那里,如果需要关闭服务,就要新开一个cmd窗口,然后像上面一样,cd进MysqL目录,执行:
C:\mysql-5.6.13-win32\bin>MysqLadmin -u root -p shutdown
Enter password:

C:\mysql-5.6.13-win32\bin>


2、上面这种方法是临时用的,一般来说还是注册成服务,执行:
C:\mysql-5.6.13-win32\bin>MysqLd --install MysqLabc
Service successfully installed.

C:\mysql-5.6.13-win32\bin>net start MysqLabc
MysqLabc 服务正在启动 ..
MysqLabc 服务已经启动成功。


C:\mysql-5.6.13-win32\bin>
另外,停止服务是net stop MysqLabc,卸载服务是MysqLd --remove MysqLabc。MysqLabc是服务名,你可以起其他的名字。
在cmd窗口里面调试sql语句,执行:
C:\mysql-5.6.13-win32\bin>MysqL -u root -p
Enter password:
Welcome to the MysqL monitor. Commands end with ; or \g.
Your MysqL connection id is 4
Server version: 5.6.13 MysqL Community Server (GPL)

copyright (c) 2000,2013,Oracle and/or its affiliates. All rights reserved.

Oracle is a registered Trademark of Oracle Corporation and/or its
affiliates. Other names may be Trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MysqL> create database abc character set gb2312;
Query OK,1 row affected (0.03 sec)

MysqL> \q
Bye

C:\mysql-5.6.13-win32\bin>


二、当安装了驱动,启动了服务之后,就可以开始代码工作:
引用Microsoft ActiveX Data Objects 2.0 Library
引用Microsoft ADO Data Control 6.0 (OLEDB)控件。
添加两个文本框,两个命令按钮,一个Adodc控件。

Option Explicit
Dim m_conPhone As ADODB.Connection

Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum,ByVal pError As ADODB.Error,adStatus As ADODB.EventStatusEnum,ByVal pRecordset As ADODB.Recordset)
If (Not Adodc1.Recordset.BOF) And (Not Adodc1.Recordset.EOF) Then Adodc1.Caption = Adodc1.Recordset.Bookmark
End Sub

Private Sub Command1_Click()
Adodc1.Recordset.AddNew
End Sub

Private Sub Command2_Click()
Adodc1.Recordset.Delete
Adodc1.Refresh
End Sub

Private Sub Form_Initialize()
If sqlConnect(m_conPhone) Then
m_conPhone.Execute "create database if not exists abc character set gb2312",adExecutenorecords
m_conPhone.Execute "use abc",adExecutenorecords
m_conPhone.Execute "CREATE TABLE IF NOT EXISTS " & "test" & "( name varchar(20) primary key," _
& "time datetime)",adExecutenorecords
m_conPhone.Execute "insert ignore into test values ('名字','2014-3-1')",adExecutenorecords
m_conPhone.Close
Set m_conPhone = nothing
Else
Set m_conPhone = nothing
Set Form1 = nothing
End If
End Sub

Private Function sqlConnect(Connect As ADODB.Connection) As Boolean
On Error GoTo errconnect
Set Connect = New ADODB.Connection
Connect.ConnectionString = "DRIVER={MysqL ODBC 5.2 Ansi Driver};" _
& "SERVER=localhost;" _
& "UID=root;PWD=; OPTION=3;"
Connect.Open
sqlConnect = True
Exit Function
errconnect:
Dim strErr As String
If Err.Number = -2147467259 Then
strErr = "可能MysqL服务没有开启。"
End If
Debug.Print Err.Number & "," & strErr & Err.Description
sqlConnect = False
End Function

Private Sub Form_Load() Me.Show Adodc1.ConnectionString = "Provider=MSDAsql.1;Persist Security Info=False;User ID=root;Extended Properties=" & _ Chr(34) & "DRIVER={MysqL ODBC 5.2 Ansi Driver};SERVER=localhost; OPTION=3;DATABASE=abc" & Chr(34) Adodc1.CommandType = adCmdText Adodc1.RecordSource = "select * from test" Set Text1.DataSource = Adodc1 Text1.datafield = "name" Set Text2.DataSource = Adodc1 Text2.datafield = "time" Command1.Caption = "增加" Command2.Caption = "删除" End Sub

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...