当前位置:首页 » 数据仓库 » vc动态创建数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

vc动态创建数据库

发布时间: 2022-12-14 23:28:09

Ⅰ 怎么在VC++中用ADO创建数据库

VC++中使用ADO方式操作ACCESS数据库是Microsoft数据库应用程序开发的新接口,是建立在OLEDB之上的高层数据库访问技术,即使你对OLEDB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBCAPI、DAO、RDO都要容易使用,并不失灵活性。本文详细地介绍在VisualC++开发环境下如何使用ADO来进行数据库应用程序开发,并给出示例代码。为了使读者朋友都能测试本例提供的代码,我们采用Access数据库,您可以直接在我们提供的示例代码中找到这个test。mdb。程序编译运行后的效果一所示:
一、实现方法
万事开头难,任何一种新技术对于初学者来说最重要的还是"入门",掌握其要点。让我们来看看ADO数据库开发的基本流程吧!它的基本步骤如下:
(1)初始化COM库,引入ADO库定义文件
(2)用Connection对象连接数据库
(3)利用建立好的连接,通过Connection、Command对象执行sql命令,或利用Recordset对象取得结果记录集进行查询、处理。
(4)使用完毕后关闭连接释放对象。
下面我们将详细介绍上述步骤并给出相关代码。
1、COM库的初始化
我们可以使用AfxOleInit()来初始化COM库,这项工作通常在CWinApp::InitInstance()的重载函数中完成,请看如下代码:
BOOLCADOTest1App::InitInstance()
{
AfxOleInit();
。。。。。。
}
2、用#import指令引入ADO类型库
为了引入ADO类型库,需要在项目的stdafx。h文件中加入如下语句:
#import"c:\programfiles\commonfiles\system\ado\msado15。dll"
no_namespacerename("EOF","adoEOF")
这一语句有何作用呢?其最终作用同我们已经十分熟悉的#include类似,编译的时候系统会为我们生成msado15。tlh,ado15。tli两个C++头文件来定义ADO库。
需要读者朋友注意的是:您的开发环境中msado15。dll不一定在这个目录下,请按实际情况修改;在编译的时候可能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告:msado15。tlh(405):warningC4146:,resultstillunsigned。
3、创建Connection对象并连接数据库
为了首先我们需要添加一个指向Connection对象的指针_ConnectionPtrm_pConnection,下面的代码演示了如何创建Connection对象实例及如何连接数据库并进行异常捕捉:
BOOLCADOTest1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
HRESULThr;
try
{
hr=m_pConnection。CreateInstance("ADODB。Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft。Jet。OLEDB。4。0;
DataSource=test。mdb","","",adModeUnknown);///连接数据库
//上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,
//需要改为:Provider=Microsoft。Jet。OLEDB。3。51;
}
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage。Format("连接数据库失败!\r\n错误信息:%s",e。ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
在这段代码中我们是通过Connection对象的Open方法来进行连接数据库的,下面是该方法的原型:
HRESULTConnection15::Open(_bstr_tConnectionString,_bstr_tUserID,_bstr_tPassword,longOptions);
上述函数中参数ConnectionString为连接字串;参数UserID是用户名;参数Password是登陆密码;参数Options是连接选项,用于指定Connection对象对数据的更新许可权,一般情况下Options可以是如下几个常量:
adModeUnknown:缺省。当前的许可权未设置

Ⅱ 如何在VC\VB中建立和使用数据库

C,C++,JAVA,再就是VC,VC++,VB,VF都是干什么的啊,还有就是VB.NET等,请详道来
这些都是用于程序设计的
C语言以一种比较基本的面向过程语言,比较低级。C++和Java则是面向对象的语言,Java相对C++会高级一些。这里所谓的高级低级不是说这个语言本身的优劣,而是说它们所关心的层面里用户的远近,离得远则低级,离得近则高级。
VC、VC++全称Visual C++,是微软出品的C++编译器软件及其相应的类库,可以用于Windows下C++程序设计及软件开发,一般用于开发系统软件,应用软件及游戏等。
VB全称Visual Basic,是微软出品的Basic编译器软件及其相应的类库,可以用于Windows下软件开发,可以用于编写应用软件、游戏等。
VF全称Visual FoxPro,数据库编程系统,也是微软的产品。
VB.NET就是Visual Basic .NET,是微软推出.NET战略后的Visual Basic产品,用其所写程序一般运行于.NET平台上,可以用来制作网站和编写软件。
关于这些软件的详细情况,lz可以搜索网络的相应词条,那里面都很详细。
如果楼主想学习编程,不必要把这些都学了,如果有一项你能精通,那都是很不得了的事!我是说 精通!都学的话,人的精力有限,不可能都精通,每个都学个皮毛,一点用处都没有,只能骗骗5岁以下的小孩:)。
给你讲讲我的学习经历,当初我没学C,直接学的C++,当然学习周期很长,而且比较枯燥,但坚持下来就好了。现在我工作中以C++和Java为主,C偶尔使用。其实回了一种语言,其他的语言相对就比较容易了,因为它们长得都很像。
我建议lz从Java或C#开始(只要学一种啊,不要贪多,不然浪费时间),先买一本书或找些教程,把java/C#的语法学好,每本书里面肯定会涉及到一些类库方面的东西,可以适当看看。在学习java/C#的时候,面向对象的思想的建立我觉得是最关键的。当然,刚刚开始可能会有些弄不明白为什么这么写的地方,这些地方先不要管,照书上先抄下来去运行,随着后面的学习这些问题你会逐步清楚的。
我个人觉得java的学习过程要比c容易一些,而且效果会好些。毕竟c的学习基本是以语法为主,但c的程序基本上就是黑屏上面几个白字的状态,不利于初学者建立学习兴趣和成就感,比较容易坚持不下去。java/C#这方面则强得多。

Ⅲ 如何动态创建数据库表

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("数据库url","帐号","密码");
state=conn.createStatement();
state.executeUpdate("create 建表语句");
state.executeUpdate("insert 插入数据")------>插入的值由页面获得,注意字符串拼接。
然后就是关闭连接,state.close();conn.close();
核心代码就是这些,具体应用你可以多写几个方法(增删改查),都是类似的,注意异常的处理,关闭连接最好在finally中进行。

Ⅳ VC 动态创建数据库为什么不能链接输入数据

http://database.51cto.com/art/200509/3585.htm 看这个链接,你就明白啦

Ⅳ 在VC中创建Mysql数据库

Driver={SQL Server};Server=主机名;Database=数据库名;Uid=sa;Pwd=sa;

还有一个比较简单方法确定连接字符串:
1.建立一个.udl的文件。
2.双击打开,将里面相关项进行设置,保存,关闭。
3.有记事本打开这个udl文件,里面的字符串就是连接字符串!

Ⅵ VC++中可否建立数据库,如果可以该如何建立

VC连接数据库 可以使用 odbc,ado,等 先给个odbc sdk的连接方式你 实用与VC控制台, MFC ,C等

#include <windows.h>
#include <iostream>
//////////////////////////////////////////////////////////////////////////
// how to use odbc access database
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// step 1: include header file
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
typedef SQLHand SQLHENV //SQL环境
SQLHDBC //ODBC连接
SQLHSTMT //sql语句
//add files to project odbc32.lib
#pragma comment(lib,"WS2_32.lib")
//////////////////////////////////////////////////////////////////////////

void main()
{
//////////////////////////////////////////////////////////////////////////
// variable definition:
//////////////////////////////////////////////////////////////////////////
SQLHENV henv=NULL; //SQL环境
SQLHDBC hdbc=NULL; //ODBC连接
SQLHSTMT hstmt=NULL; //SQL语句
SQLRETURN rc; //SQL执行结果
//////////////////////////////////////////////////////////////////////////
// ::SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv)))//设置环境
// if (SQL_SUCCESS == (rc = ::SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, SQL_IS_INTEGER)))
// {
// if (SQL_SUCCESS == (rc =
// ::SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc)))

rc=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
if (rc==SQL_SUCCESS) {
if(SQL_SUCCESS== (rc=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER) SQL_OV_ODBC3,SQL_IS_INTEGER)))
rc=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
rc=SQLConnect(hdbc, (SQLCHAR *)"sql", SQL_NTS, (SQLCHAR *)"sa", SQL_NTS, (SQLCHAR *)"sa", SQL_NTS);
// rc=SQLConnect(hdbc,(SQLCHAR *) "sql",SQL_NTS,(SQLCHAR *) "sa",SQL_NTS,(SQLCHAR * )"sa",SQL_NTS);
rc=SQLAllocHandle(SQL_HANDLE_STMT, hdbc,&hstmt);
LPCSTR szSQL="INSERT INTO Employees (LastName, FirstName) VALUES (N'222', N'333')";
SQLPrepare(hstmt,(SQLCHAR *) szSQL,SQL_NTS);
rc=SQLExecute(hstmt);
char szName[20];
SDWORD sd;
int PERSON_INFO =20;
//SQLBindCol(hstmt,0,SQL_C_CHAR, szName,30,&sd);
rc=SQLBindCol(hstmt,1,SQL_C_CHAR,szName,PERSON_INFO,&sd);//绑定字段
rc=SQLFetch(hstmt);//取出 szName就是你需要的数据库字段 每次sqlfetch() 数据库查询返回下一行的字段值
std::cout<<szName<<std::endl;

SQLFreeHandle(SQL_HANDLE_STMT,hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
hdbc=NULL;
SQLFreeHandle(SQL_HANDLE_ENV,henv);
henv=NULL;
}

}