vb连接odbc连接mysql数据库_vb6通过ODBC连接mysql数据库

在尝试连接数据库之前, 需要简单说明一下连接数据库的两种最常见的方式: 一种是通过建立 DSN 来连接, 这种比较麻烦, 程序移植性差; 我一般采取利用 ADODB 连接数据库的方式, 这种比较灵活方便, 不需额外工作, 方便程序移植.

下面的例子就是通过 ADODB 连接 MySQL 数据库:

首先, 运行VB并新建一标准EXE工程, 通过菜单 工程->引用 打开”引用”对话框, 找到 Microsoft ActiveX Data Objects x.x Library , 其中 x.x 是版本号, 可能会有很多个, 这里我选择的是 2.5(如图)

单击”确定”关闭对话框, 这样就在工程中引入了 ado(ActiveX Data Objects), 然后双击Form设计窗体, 打开代码窗口, 在 Form_Load 过程中输入下面的代码(具体说明在代码的注释中):

' 定义并创建数据库连接和访问对象

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

' 定义数据库连接字符串变量

Dim strCn As String

' 定义数据库连接参数变量

Dim db_host As String

Dim db_user As String

Dim db_pass As String

Dim db_data As String

' 定义 SQL 语句变量

Dim sql As String

' 初始化数据库连接变量

db_host = "localhost"

db_user = "yourUsername"

db_pass = "yourPassword"

db_data = "yourDatabase"

' MySQL ODBC 连接参数

'+------------+---------------------+----------------------------------+

'| 参数名     | 默认值               | 说明                             |

'+------------+------------------------------------------------------–+

'| user       | ODBC (on Windows)   | MySQL 用户名                     |

'| server     | localhost           | MySQL 服务器地址                 |

'| database   |                     | 默认连接数据库                   |

'| option     | 0                   | 参数用以指定连接的工作方式       |

'| port       | 3306                 | 连接端口                         |

'| stmt       |                     | 一段声明, 可以在连接数据库后运行 |

'| password   |                     | MySQL 用户密码                   |

'| socket     |                     | (略)                             |

'+------------+---------------------+----------------------------------+

' 详细查看官方说明

' http://dev.mysql.com/doc/refman/5.0/en/myodbc-configuration-connection-parameters.html

strCn = "DRIVER={MySQL ODBC 3.51 Driver};" & _

"SERVER=" & db_host & ";" & _

"DATABASE=" & db_data & ";" & _

"UID=" & db_user & ";PWD=" & db_pass & ";" & _

"OPTION=3;stmt=SET NAMES GB2312"

' stmt=SET NAMES GB2312

' 这句是设置数据库编码方式

' 中文操作系统需要设置成 GB2312

' 这样中文才不会有问题

' 版本要求 mysql 4.1+

' 连接数据库

cn.Open strCn

' 设置该属性, 使 recordcount 和 absolutepage 属性可用

cn.CursorLocation = adUseClient

' 访问表 table1

sql = "select * from table1"

rs.Open sql, cn

MsgBox rs.recordCount

很简单吧, 剩下的就和操作其他数据库一样了, 最大的区别就在于一些 SQL 语句上.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABS_MT_TOUCH_MAJOR和ABS_MT_WIDTH_MAJOR

通常的多点触摸周期可以描述为:ABS_MT_*|SYN_MT_REPORT|ABS_MT_*|SYN_MT_REPORT|SYN_REPORT有些ABS_MT事件是必须实现的,如ABS_MT_POSITION_X和ABS_MT_POSITION_Y.而某些事件,如ABS_MT_TOUCH_MAJOR和ABS_MT_WIDTH_MAJOR是否需要实现则取决于具…

Java 笔记

1 词语 JRE —— Java运行时环境(Java Runtime Environment) JVM —— Java虚拟机 JDT —— Java的开发环境,可以方便的对代码进行开发及调试功能 SDK —— 软件开发工具包(Software Development Kit) IDE —— 集成开…

Windows修改注册表按键映射

Scancode Map 注册表项来实现键盘按键映射。 位于注册表的: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\ 下新建一个二进制值项: "Scancode Map" 这个项目可实现对键盘按键的映射。这里映射的意思可理解为“替换”…

python去掉最高分和最低分_去掉一个最高分,去掉一个最低分求平均值(trimmean)...

如下图:演讲比赛,要求去掉一个最高分,去掉一个对低分后求平均值。当然这个太简单了,我们可以用max求出最大值,用min求出最小值,然后sum求出数据总和,用(总和-最大值-最小值)/(数据总个数-2)。思…

Android的.apk软件安装到sd卡的方法

对于Android 2.2开始的软件可以装到到SD上的支持,对于adb命令而言也有了改进,对于Android 2.2固件中的pm命令开支持安装选项参数,这里新增了参数setInstallLocation,这里我们可以用adb通过shell命令执行linux的pm添加一些参数即可…

[Oracle整理]CASE-END

说明:本内容是工作用到的知识点整理,来自工作中和网络。 代码于Oracle9上测试。 作用: 1可用来进行数据资料行转列的功能 2可用来对数据进行判断,类似decode,但CASE语句在处理范围条件的时候会显得非常灵活。如果只是需要匹配少量…

mysql声明declare_mysql8 参考手册--DECLARE ... CONDITION声明

DECLARE condition_name CONDITION FOR condition_valuecondition_value: {mysql_error_code| SQLSTATE [VALUE] sqlstate_value}该DECLARE ... CONDITION语句声明一个命名错误条件,将名称与需要特定处理的条件相关联。可以在后续DECLARE ... HANDLER语句中引用该名…

libevent源码深度剖析一

libevent源码深度剖析一 ——序幕 张亮 1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少。写这一系列文章的用意在于,一则分享心得;二则对libevent代码和设计思想做系统的、更…

python什么是空类型_在Python中创建真正的空类型

创建您自己的自定义容器怎么样?在class Empty(object):def __init__(self, **kwargs):object.__setattr__(self, _obj, kwargs)def __getattribute__(self, name):obj object.__getattribute__(self, _obj)try:return obj[name]except KeyError:cls_name object._…

DMA及cache一致性的学习心得

这里提到的DMA设备是非PCI设备在framebuffer的prob函数中,用到了这样一个函数,下面分析下它的作用/* * s3c_fb_map_video_memory(): * 分配DRAM的缓存区给frame buffer。 * 这个缓存区是一个non-cached,non-buffered的。 &…

ASP.NET使用Memcached高缓存实例(初级教程)

http://www.itruanjian.com/a/itruanjian/datebase/nosql/2011/0927/5706.htmlMemcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的M…

C# 线程手册 第三章 使用线程 Monitor.TryEnter()

Monitor 类的TryEnter() 方法在尝试获取一个对象上的显式锁方面和 Enter() 方法类似。然而,它不像Enter()方法那样会阻塞执行。如果线程成功进入关键区域那么TryEnter()方法会返回true. TryEnter()方法的三个重载方法中的两个以一个timeout类型值作为参数&#xff0…

socketpair理解

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://liulixiaoyao.blog.51cto.com/1361095/533469 今天跟人谈到socketpair的问题,晚上回来写了个程序验证下自己的猜测&#xff0…

小数点化分数的过程_分数和小数的互化

《分数和小数的互化》由会员分享,可在线阅读,更多相关《分数和小数的互化(3页珍藏版)》请在人人文库网上搜索。1、_五__年级__数学____备课组教案教师备课时间课时课题分数和小数的互化课型新授课前准备:教材剖析(考点、易错点、关联考点)。1…

pycharm不同py文件共享参数_PyCharm安装笔记

1. 介绍1.1 介绍今天福哥带着大家学习如何安装非常好用的Python编辑器,也就是jetbrains全家桶的PyCharm编辑器。PyCharm是jetbrans开发的一款专门用来编写Python程序的编辑器,它的自动补全、代码联想、框架支持、插件支持以及高效的反应速度成为了编写Py…

WPF - 自定义标记扩展

在使用WPF进行编程的过程中,我们常常需要使用XAML的标记扩展:{Binding},{x:Null}等等。那么为什么WPF提供了XAML标记扩展这一功能,我们又如何创建自定义的标记扩展呢。这就是本文将要讨论的内容。 一.从标记扩展的分析…

mysql c api 函数 linux下 mysql_query_Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据...

标签:Title:Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据 --2013-10-11 11:57#include #include #include #include "mysql.h"int main(int argc, char *argv[]){MYSQL my_connection;int res;mysql_init(&my_connection);char UNAM…

使用LVM

一些比较常用的命令: vgdisplay 展示创建的volume group lvdisplay 展示创建的logic volume 在我们的项目中,vg把磁盘阵列的所有空间分给它,pv为每个盘,lv分配为每个虚拟机。 这样需要修改的地方:转载于:https://www.c…

mysql客户端保存数据乱码_mysql客户端数据乱码问题

往mysql插入中文数据时出现乱码,如下:mysql> select * from test;-----------------| id | name |-----------------| 1 | 鐜嬪煿鍧?|| 2 | 鐜嬫檽宄?|| 3 | 寮犲皬闆?|| 4 | 鐜嬮洩宄?|| 5 | 闄嗕簯 || 6 | 妗冭姳濂…

基于半同步/半反应堆线程池实现的HTTP解析服务端程序

简介: 半同步/半反应堆线程池是通过一个线程往工作队列添加任务T,然后工作线程竞争工作队列获得任务T。HTTP请求解析服务端程序:逐行解析客户端发送来的HTTP请求然后作出HTTP回答。采用线程池就是:服务端创建一个线程池&#xff0…