数据库如何与软件连接的

数据库如何与软件连接的,第1张

软件可以通过好多种方式连接数据库,有微软提供的(ODBC)开放式数据库连接,和SUN提供的JDBC(java数据库连接),也可以用数据库服务商提供的API来实现数据库访问。\x0d\x0a数据库系统也有好多种,有IBM公司的DB2,有甲骨文公司提供的oracle系列,还有微软提供的SQLServer,还有免费版的MySQL。\x0d\x0a你看到的大多数小网站用的都是MySQL。\x0d\x0a你可以学学这个数据库系统,再看看JDBC.这方面的教程太多了。

抄一段使用ODBC API连接的代码:

#include <windows.h>

#include "stdio.h"

#include<sql.h>

#include<sqlext.h>

#include<sqltypes.h>

#include<odbcss.h>

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

SQLHENV m_hEnv

SQLHDBC m_hDbc

SQLRETURN m_sr

m_sr=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&m_hEnv)

if(m_sr!=SQL_SUCCESS)

{ MessageBox(NULL,"分配环境句柄失败","错误",MB_OK|MB_ICONEXCLAMATION)

return FALSE

}

m_sr=SQLSetEnvAttr(m_hEnv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,0)

if(m_sr!=SQL_SUCCESS)

{ MessageBox(NULL,"设置环境属性失败","错误",MB_OK|MB_ICONEXCLAMATION)

return FALSE

}

m_sr=SQLAllocHandle(SQL_HANDLE_DBC,m_hEnv,&m_hDbc)

if(m_sr!=SQL_SUCCESS)

{ MessageBox(NULL,"分配连接句柄失败","错误",MB_OK|MB_ICONEXCLAMATION)

return FALSE

}

m_sr=SQLSetConnectAttr(m_hDbc,SQL_ATTR_LOGIN_TIMEOUT,(void*)5,0)

if(m_sr!=SQL_SUCCESS)

{ MessageBox(NULL,"设置连接属性失败","错误",MB_OK|MB_ICONEXCLAMATION)

return FALSE

}

m_sr=SQLConnect(m_hDbc,(SQLCHAR*)"LocalServer",SQL_NTS,(SQLCHAR*) "sa",SQL_NTS,(SQLCHAR*) "123456",SQL_NTS)

if(SQL_SUCCEEDED(m_sr))

{ MessageBox(NULL,"连接数据源失败","错误",MB_OK|MB_ICONEXCLAMATION)

return FALSE

}

return 0

}

有多种方法,具体还有看你连接什么数据库,以及采用什么连接方式

我经常用的方法是用DAO连接Access

具体方法是

1、先添加DAO的引用

2、定义全局变量

public DAO.Database myDb

DAO.Workspace myWs

public DAO.Recordset myRec

DAO.DBEngine de = new DAO.DBEngineClass()

3、自己定义一个打开数据库的函数,以便自己调用

public void OpenDb(String sql)

{

string dbStr

dbStr = "c:\\钟山亮.mdb"//数据库的路径

myWs = de.Workspaces[0]

myDb = myWs.OpenDatabase(dbStr, null, null, null)

myRec = myDb.OpenRecordset(sql, DAO.RecordsetTypeEnum.dbOpenDynaset,

DAO.RecordsetOptionEnum.dbDenyWrite,

DAO.LockTypeEnum.dbOptimistic)

}

4、打开数据库

string sql="select * from myTb"//书写你自己的SQL语句

OpenDb(sql)

while (!myRec.EOF)//遍历记录{

myRec.MoveNext()

}

myRec.Close()

myDb.Close()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9612354.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存