c++-C++多次操作数据库,打开数据库的操作只想执行一次应该放在什么位置

问题描述

C++多次操作数据库,打开数据库的操作只想执行一次应该放在什么位置

小型学生管理系统,有一个类Database专门用于操作数据库,构造函数里有打开数据库的操作,增删改查操作四个类里都建了Database类对象,程序运行时数据库会打开多次,请问打开数据库的操作只想执行一次的话,应该放在什么位置

解决方案

在c++ builder里一般open是用来执行查询,查询几次就要open几次

解决方案二:

其实你走了弯路, 这个不是需要你思考的东西。

数据库连接的打开, 固然需要时间, 但你不关闭, 资源一直被占用, 也是很大的消耗, 如果程序中间有异常怎么办?
数据库连接的消耗, .net已经思虑到了, 只要是同一个连接串, 默认为同一个连接池,连接用完后一般并不会马上销毁,只是放回连接池。

你要做的, 就是打开和关闭要配对, 打开了的连接要及时关闭, 不要觉得麻烦。

解决方案三:

类Database专门用于操作数据库,在此类的构造函数中打开、连接数据库,析构时关闭数据库。或者,不放在 Database类的构造与析构函数中,但可以放在程序初始化与结束时。
增删改查操作四个类里,不再独立定义 Database类对象,而是采用一个全局的 Database类对象代替之。

解决方案四:

数据库打开Open以后,保存一个成员变量,就都用这一个对象去操作数据库

时间: 2025-01-01 15:30:15

c++-C++多次操作数据库,打开数据库的操作只想执行一次应该放在什么位置的相关文章

DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)_oracle

一.摘要 Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤: 启动实例-->加载数据库-->打开数据库 因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库. 1. Oracle启动需要经历四个状态:SHUTDOWN .NOMOUNT .MOUNT .OPEN 2. Oracle关闭的四种方式:Normal, Immediate, Transactional, Abort 3. 启动和关闭过程详解   二.数

python操作数据库之sqlite3打开数据库、删除、修改示例_python

复制代码 代码如下: #coding=utf-8__auther__ = 'xianbao'import sqlite3# 打开数据库def opendata():        conn = sqlite3.connect("mydb.db")        cur = conn.execute("""create table if not exists tianjia(id integer primary key autoincrement, user

SQL Server附加数据库报错无法打开物理文件,操作系统错误5的图文解决教程_MsSql

问题描述:      附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf和ldf文件,本演示以ldf为例.   1.点击文件右键属性-->安全-->编辑  2.编辑-->添加 3.添加-->高级 4.高级-->立即查找-->搜索结果中找到-->Everyone-->确定-->确定 5.确定-->默认选中的Everyone

CI框架连接数据库配置操作以及多数据库操作

数据库快速入门例子代码 下面的内容将简单说明怎样使用数据库.更详细的信息请阅读各个函数的单独介绍页面.   初始化数据库类 下面的代码将依据你的数据库配置载入并初始化数据库类:   $this->load->database();   一旦被载入,你可以在任何地方像这样使用它:   注意: 如果你的所有页面均要求初始化数据库类,你可以让它自动加载.详见 数据库连接.   多结果标准查询(对象形式) $query = $this->db->query('SELECT name, ti

Oracle某个数据文件损坏,如何打开数据库

oracle|数据|数据库 某个数据文件损坏,如何打开数据库? 系统环境: 1.操作系统:Windows 2000 Server,机器内存128M2.数据库: Oracle 8i R2 (8.1.6) for NT 企业版3.安装路径:C:\ORACLE 错误现象: 因误操作,数据库中某一数据文件被误删,控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,显示以下错误ORA-01033: ORACLE initialization or shutdown in progres

C#操作SQL Server数据库

1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用: 第三,对SQL或存储过程执行后返回的"结果"进行操作. 对返回"结果"的操作可以分为两类: 一是用SqlDataReader直接一行一行的读取数据集: 二是DataSet联合SqlDataAdapter来操作数据库. 两者比较: SqlDataReader时刻与远

Java+MyEclipse+Tomcat (五)DAO和Java Bean实现数据库和界面分开操作

        正如前面一篇文章的介绍,当使用Servlet提交表单和JSP数据库查询时,总是相互交叉着的处理,要么在JSP中通过<%...%>内嵌Java代码操作数据库,要么JSP中通过Post方法提交表单Form,在Java中通过Servlet获取请求/响应,再通过Java中out.println("<HTML>...")输出数据库中值.         此篇文章主要讲述通过DAO和Java Bean操作数据库,把链接数据库.数据库操作.前端界面显示分模块化

Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法

转自 http://www.cnblogs.com/babycool/archive/2011/11/17/2253349.html Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法  最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附加数据库文件时弹出错误信息:如下图:       ,一时无解,遂求助于百度谷歌,经过各种试验,特将解决办法整理于此,希望能帮到大家,同时如果有好的意见大家多多交流啊

visual studio 2010-VS2010 MFC登录对话框打开数据库失败后意外出现主界面的问题

问题描述 VS2010 MFC登录对话框打开数据库失败后意外出现主界面的问题 用VS2010 MFC建立了一个主界面为对话框的函数,要求需要登录对话框,且通过读取数据库来校验用户,代码如下: BOOL CManagementDlg::OnInitDialog()//主对话框初始函数 { CDialogEx::OnInitDialog(); _CLogInDlg dlgLogin; if(dlgLogin.DoModal() != IDOK)//登录对话框 { OnOK(); return TRU