如何创建从VC和MySQLunity 代码创建预制体的可执行安装程序吗

VC 访问mysql数据库
建立数据源:
开始菜单-&设置-&控制面板-&管理工具-&数据源(ODBC)-&系统DSN-&添加-&选择MySQL ODBC 3.51 Driver(我下载的MyODBC版本是3.51)
然后在出现的Connector/ODBC Configure Data Source Name对话框中输入
Data Source Name---------ADOLinkMySQL
//数据源名称
Server-------------------localhost
//数据库服务器名称
User---------------------root
//用户名(MySQL默认的用户名是root)
Password-----------------123456
//密码(由MySQL root用户管理)
DataName-----------------adolinkmysql
//你刚才建立的数据库名称
  输入以后,点击Test。如果出现Sconnection was made!表示建立数据源成功,即可 继续下一步
4,最后应用程序就可以通过ADO来访问MySQL了。注意在连接数据库中要用以下代码来连接
_ConnectionPtr m_pC
m_pConnection-&Open("DSN=ADOLinkMySQL;",
/*数据源名称*/
VC环境下使用mysql API函数访问MySQL数据库
安装MySQL的完整版;(在安装过程中可以选择)
将C:\Program Files\MySQL\MySQL Server 5.0\lib\opt目录下的“libmysql.lib”文件复制到创建的VC工程目录下;
程序中包括头文件,连入库文件:
#include &winsock.h&
#include "C:\Program Files\MySQL\MySQL Server 5.0\include\mysql.h"(数据库的安装路径)
#pragma comment(lib,"libmysql.lib")
#include "stdafx.h"
#include &winsock.h&
#include "C:\Program Files\MySQL\MySQL Server 5.0\include\mysql.h"
#pragma comment(lib,"libmysql.lib")
int main(int argc, char* argv[])
MYSQL_RES *
mysql_init(&mysql); //初始化mysql结构
if(!mysql_real_connect(&mysql,"MyXp","UserDB","123456","userdata",0,NULL,0))//连接服务器
fprintf(stderr,"Failed to connect to database: Error: %s\n",
mysql_error(&mysql));
//////////////////////////////////////////////////////////////////////////
/////////////////////////插入数据/////////////////////////////////////////
if(mysql_query(&mysql,"insert into UserDataTable values('rm','209','209','',
'23213','yjiang','26.222.171.2',' 10:53:12')"))//进行查询
fprintf(stdout,"mysql_query() insert failed!\n");
//////////////////////////////////////////////////////////////////////////
///////////////////////////////
///////////////////////////////
if(mysql_query(&mysql,"select * from UserDataTable"))
fprintf(stdout,"mysql_query() select failed!\n");
result = mysql_store_result(&mysql);//读取一个到客户的查询的全部结果,
//分配一个MYSQL_RES结构,并且把结果放进这个结构中。(获得结果集)
while (row = mysql_fetch_row(result))//取出结果集中记录
fprintf(stdout,"UserName:%s password: %s Email:%s City:%s \n",row[0],row[1],row[3],row[5]);//输出这行记录
mysql_free_result(result);
//释放结果集
//////////////////////////////////////////////////////////////////////////
//////////////////////////删除数据///////////////////////////////////
if(mysql_query(&mysql,"delete from UserDataTable where UserName = 'chz'"))
fprintf(stdout,"mysql_query() delete failed!\n");
//////////////////////////////////////////////////////////////////////////
/////////////////////////////更新数据/////////////////////////////////////
if(mysql_query(&mysql,"update UserDataTable set PassWord = 'lyj0662',ConPass = 'lyj0662' where UserName = 'lyj'"))
fprintf(stdout,"mysql_query() updata failed!\n");
mysql_close(&mysql);//释放连接
补充回答:
VC ADO链接MySql数据库
ODBC方式链接。
1、应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。
#import "C:\\program files\\commonfiles\\system\\ado\\msado15.dll" no_namespacerename ("EOF","adoEOF")
2、链接数据库
CoInitialize(NULL);
//初始化Com组件
_ConnectionPtr conP
//数据库链接指针
//conPtr.CreateInstance("ADODB.Connection");
//Connection用于与数据库服务器的链接
conPtr.CreateInstance(__uuidof(Connection));
//Connection用于与数据库服务器的链接另一种方式
/******************连接数据库********************/
conPtr-&ConnectionTimeout = 5;
//设置连接时间
// MySqlTest为数据源名 localhost表示本地root表示用户名 sa表示密码
//链接方式1,使用这种方式链接时要注意在设置数据源时一定要选择一个数据库
//conPtr-&Open("DSN=MySqlTserver=","root","sa",adModeUnknown);///连接MySql数据库(测试成功)
//链接方式2采用这种方式链接时在创建数据源时没有必要选择一个数据库
conPtr-&Open("DSN=MySqlTserver=database=","root","sa",adModeUnknown);///连接MySql数据库(测试成功)
catch(_com_error e)
//捕捉异常
AfxMessageBox(e.ErrorMessage());
CoUninitialize();
//释放com组件//不知是否有必要
3、访问数据库
_RecordsetPtr recordP//数据集指针
recordPtr.CreateInstance(__uuidof(Recordset));
CString cmdStr=_T("selectname,stuno from student");//student为表名 该表中有两个字段name(字符型)stuno(int型)
recordPtr-&Open(_variant_t(cmdStr),
conPtr.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
catch(_com_error e)
AfxMessageBox(e.Description());
while(!(recordPtr-&adoEOF))
{//获取记录
CStringname=(CString)recordPtr-&GetCollect(_variant_t("name")).bstrV
intno=recordPtr-&GetCollect(_variant_t("stuno")).intV
recordPtr-&MoveNext();
recordPtr-&Close();//关闭记录集
recordPtr.Release();//释放空间
conPtr-&Close();//关闭连接
conPtr.Release();//释放空间
非ODBC方式链接。
链接数据库
CoInitialize(NULL);
//初始化Com组件
_ConnectionPtr conP
//数据库链接指针
//conPtr.CreateInstance("ADODB.Connection");
//Connection用于与数据库服务器的链接
conPtr.CreateInstance(__uuidof(Connection));
//Connection用于与数据库服务器的链接另一种方式
// MySQL ODBC 5.1 Driver为驱动名称(取决于我们为MySql安装的驱动),localhost为服务器地址,test为数据库名,root为用户名(MySql默认用户名为root),sa为密码
CStringconStr=_T("Driver={MySQL ODBC 5.1 Driver };Server=Database=");
/******************连接数据库********************/
conPtr-&ConnectionTimeout = 5;
//设置连接时间
conPtr-&Open((_bstr_t)conStr, _T("root"),_T("sa"), adModeUnknown);
catch(_com_error e)
//捕捉异常
AfxMessageBox(e.ErrorMessage());
CoUninitialize();
//释放com组件
获取记录集
获取记录集的方式与ODBC方式相同
没有更多推荐了,几种VC++数据库开发技术的比较
从功能简单的(如Jet Engine)到复杂的大型数据库(如oracle),VC++6.0都提供了一些接口。本文主要介绍以下五种:
  1.ODBC API;
  2.MFC ODBC类;
  3.MFC DAO类;(数据访问对象)
  4.MFC的OLE/DB;
  5.ActiveX数据对象(ADO)。
  1.开放数据库连接(ODBC API):提供了一个通用的编程接口,允许程序与多种不同的数据库连接。它为,SQL Server,MS Excel等都提供了驱动程序,使得用户可以使用SQL语句对数据库进行直接的底层功能操作。在使用ODBC API时,用户须引入的头文件为"sql.h","sqlext.h","sqltypes.h"。用ODBC API创建数据库应用程序遵循一定的基本步骤:
  第一步是分配ODBC环境,使一些内部结构初始化。完成这一步,须分配一个SQLHENV类型的变量在ODBC环境中做句柄使用。
  第二步是为将要使用的每一个数据源分配一个连接句柄,由函数SQLALLocHandle()完成。
  第三步是使用SQLConnect()把连接句柄与数据库连接,可以先通过SQLSetConnectAttr()设置连接属性。
  然后就可以进行SQL语句的操作,限于篇幅,相关的函数就不具体介绍了,读者可以参考相关书籍。
  操作完成后,用户取回相应的结果,就可以取消与数据库的连接。
  最后需要释放ODBC环境。
  ODBC API的特点是功能强大丰富,提供了异步操作,事务处理等高级功能,但相应的编程复杂,工作量大。
  2.MFC ODBC类:MFC1.5后的版本里引入封装了ODBC功能的类。通过这些类提供与ODBC的接口,使得用户可以不须处理ODBC API中的繁杂处理就可以进行数据库操作。主要的MFC ODBC类如下。
  CDatabase类:一个CDatabase对象表示一个到数据源的连接,通过它可以操作数据源。应用程序可使用多个CDatabase对象:构造一个对象并调用OpenEx()成员函数打开一个连接。接着构造CRecordSet对象以操作连接的数据源,并向CDatabase对象传递记录集构造程序指针。完成使用后用Close()成员函数销毁CDatabase对象。一般情况下并不需要直接使用CDatabase对象,因为CRecordSet对象可以实现大多数的功能。但是在进行事务处理时,CDatabase就起到关键作用。事务(Transaction)指的是将一系列对数据源的更新放在一起,同时提交或一个也不提交,为的是确保多用户对数据源同时操作时的数据正确性。
  CRecordSet类:一个CRecordSet对象代表一个从数据源选择的一组记录的集合-记录集。记录集有两种形式:snapshot和dynaset。前者表示数据的静态视图,后者表示记录集与其他用户对数据库的更新保持同步。通过CRecordSet对象,用户可以对数据库中的记录进行各种操作。
  CRecordView类:CRecordView对象是在空间中显示数据库记录的视图。这种视图是一种直接连到一个CRecordSet对象的格式视图,它从一个对话框模板资源创建,并将CRecordSet对象的字段显示在对话框模板的控件里。对象利用DDX和RFX机制,使格式上的控件和记录集的字段之间数据移动自动化,也就是说,用户甚至不要编写一行代码就可以实现简单的数据库记录查看程序。
  CDBException类:由Cexception类派生,以三个继承的成员变量反映对数据库操作时的异常:
   m_nRetCode:以ODBC返回代码(SQL_RETURN)的形式表明造成异常的原因。
   m_strError:字符串,描述造成抛出异常的错误原因。
   m_strStateNativeOrigin:字符串,用以描述以ODBC错误代码表示的异常错误。
  MFC数据库类成员函数都能抛出CDBException类型的异常,所以在代码对数据库进行操作后监测异常是正确做法。
  MFC ODBC类在实际开发中应用最广,因为它功能丰富,操作相对简便。
  3.MFC DAO(数据访问对象)编程:DAO用于和微软的Access数据库接口。在数据库应用程序如果只需与Access数据库接口时,使用DAO编程较方便。其主要类如下。
  CDaoWorkspace:CDaoWorkspace对象可以让一个用户管理从登陆到离开期间,指定的密码保护的数据库会话全过程。大多数情况下不要多个工作区也不要创建明确的工作区对象。因为在打开数据库和记录集对象时,它们可以使用DAO缺省工作区。
  && CDaoDatabase:代表一个连接,类似上述CDatabase类。
   CDaoRecordSet:用来选择记录集并操作,类似上述CRecordSet类。
   CDaoRecordView:类似上述CRecordView类。
   CDaoException:类似上述CDBException类。
   CDaoTableDef:表示基本表或附加表的定义。每个DAO数据库对象包括一个称为TableDef的收集,包含所有存储的DAO表定义对象。CDaoTableDef对象可以用来控制表定义。
   CDaoQueryDef:CDaoQueryDef对象表示了一个查询定义(querydef)。
   CDaoFieldExchange:支持数据库类使用的DAO字段交换(DFX)例程。也可处理事务,类似MFC ODBC类。
  MFC DAO仅用来支持Access数据库,应用范围相对固定。
  4.OLE DB:OLE DB在数据提供程序和用户之间提供了灵活的对象模型(COM)接口,这种灵活性有时会使得操作复杂化。OLE DB框架定义了应用的三个基本类。
  数据提供程序Data Provider:拥有自己的数据并以表格形式显示数据的应用程序。提供OLE DB的行集COM接口,期显示范围可以从单一数据表格的简单提供者知道更复杂的分布式数据库系统。
  使用者Consumers:使用OLE DB接口对存储在数据提供程序中的数据进行控制的应用程序。用户应用程序归为使用类。
  服务提供程序Service Provider:是数据提供程序和使用者的组合。服务提供程序没有自己的数据,但使用
  OLE DB使用者接口来访问存储在数据提供程序中的数据。然后,服务提供程序通过打开数据提供程序接口使得数据对使用者有效。服务提供程序常用于向应用程序提供高层次服务,比如高级分布式查询。
  OLE DB编程时,用户使用组件对象开发应用程序。这些组件有:
   枚举器:用于列出可用的数据源;
   数据源:代表单独的数据和服务提供程序,用于创建对话;
   对话:用于创建事务和命令;
   事务:用于将多个操作归并为单一事务处理;
   命令:用于向数据源发送文本命令(SQL),返回行集;
   错误:用于获得错误信息。
  5.ActiveX数据对象(ADO):是微软提供的面向对象的接口,与OLE DB类似,但接口更简单,具有更广泛的特征数组和更高程度的灵活性。ADO基于COM,提供编程语言可利用的对象,除了面向VC++,还提供面向其他各种开发工具的应用,如VB,VJ等。ADO在服务器应用方面非常有用,特别是对于动态服务器页面ASP(Active Server Page)。
  ADO对象结构类似于OLE DB,但并不依靠对象层次。大多数情况下,用户只需要创建并只使用需要处理的对象。下面的对象类组成了ADO接口。
   Connection:用于表示与数据库的连接,以及处理一些命令和事务。
   Command:用于处理传送给数据源的命令。
   Recordset:用于处理数据的表格集,包括获取和修改数据。
   Field:用于表示记录集中的列信息,包括列值和其他信息。
   Parameter:用于对传送给数据源的命令之间来回传送数据。
   Property:用与操作在ADO中使用的其他对象的详细属性。
   Error:用于获得可能发生的错误的详细信息。
  在VC++使用ADO需要进行COM操作,详细方法在此就不赘述了。
  在当今流行的分布式开发环境下,VC++6.0在数据库开发方面有较强的优势,学会
  在不同的场合选用不同的技术,对开发人员来说是必要的技术。在VC中怎样向mysql中插入数据_百度知道
在VC中怎样向mysql中插入数据
我有更好的答案
mysql 专门有提供 C 的API接口,安装mysql时,选 择安装 mysql 的头文件和库文件,在vc程序里引用头文件和库文件,然后调用相关函数就行了!至于怎么使用这些函数,可以上网下载mysql的帮助文档,里面有中文说明!
为您推荐:
其他类似问题
mysql的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何使用VC++程序在MySQL数据库中创建表_百度知道
如何使用VC++程序在MySQL数据库中创建表
我有更好的答案
在cmd命令提示符下输入mysql -u root -p回车,然后输入密码回车进入mysql命令行模式create d//创建数据库//使用数据库create table tablename(
id int not null primary key);这样就创建了一个只有id字段的tablename表
采纳率:96%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。VC入门专区,vc教程,vc技巧,vc入门,vc数据库,vc程序,vc代码
热点推荐:|
Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容
MSDN是Microsoft当前提供的有关编程信息的最全面的资源,它包含微软最新的技术数据库
本文介绍的宏定义与预处理指令的用法也是ATL,MFC以及Linux中使用得比较多的非常重要的技巧。
  主题社区是我们新开发的板块,在主题社区中网友将讨论更专业的问题,获得更自由的空间。
? 常用控件
? 菜单和工具条
? 视图与文档
? VC数据库编程}

我要回帖

更多关于 android 代码创建按钮 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信