多线程-Delphi的ADO访问数据库的问题

问题描述

Delphi的ADO访问数据库的问题

问题一:
多线程并发时,每个线程使用自己的adoconnection连接oracle,然后各自执行自己的查询,会不会有优先级的问题?

问题二:
sql语句在代码里通过ado查询和在plsql里查询,速度差异会很大吗?

解决方案

(1)不会有什么优先级的问题,在sql中,单条语句本身构成一个事务它是原子的。比如
update table set a = a + 1,这里a = a+1肯定是原子操作,不可能有并发问题。
但是,如果你的程序中有多条sql语句,又没有事务,就不一定了。所以要用事务。
(2)按理说差距不大,因为接口开销是很小的。但是如果你大量执行简单的查询,积少成多,也不一定。对此,你应该优化查询,多用存储过程。

解决方案二:

使用线程执行数据库操作,是以相对独立数据处理,独立完成操作为目的。它们是没有优先级的。也不存在事务机制。它们的速度,取决于线程分配CPU占用时间和数据处理们复杂性。

解决方案三:

交给线程处理(非同步),实质上就是交给操作系统,分配CPU时间段进行处理。它具有相对独立性。

解决方案四:

ADO访问数据库

时间: 2025-01-31 09:26:25

多线程-Delphi的ADO访问数据库的问题的相关文章

delphi 通过 ado 访问数据库存储过程,如果有插入动作,为什么会执行两遍?

问题描述 delphi 通过 ado 访问数据库存储过程,如果有插入动作,为什么会执行两遍? 20C 如题.这是我反复测试后得出的结论.我实在不理解为什么. 具体测试过程是这样子的:我用ado连接数据库.然后我写了一个简单的存储过程,就是往表里插入数据.然后我用ado调用这个存储过程.然后我就发现,虽然程序里我只调用了一次,但实际上表里的数据却被插入了完全一模一样的两条. 这算是bug还是怎么回事?是不是有什么我不曾注意到的细节没处理好? 存储过程代码如下: create procedure p

一个关于ADO访问数据库实现分页

ado|访问|分页|数据|数据库 什么是 ADO 存取数据库时的分页显示?如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如 20 条.想不想了解如何实现分页显示?请看本文! <动态网站设计十八般武艺 --ASP 篇>一文从第一期至今已和朋友们一起度过了大半个年头,相信通过在这一段时间中的学习.实践到再学习.再实践,大家已经能够熟练运用 ASP 的内建

使用delphi 开发 web(五)Android 与delphi 服务器交互访问数据库

     近2年,随着智能手机及平板电脑的快速发展,同时伴随着3G 网络的逐渐普及,移动开发越来越受到开发人员的青睐,而谷歌推出的Android 系统以其开放.优秀很快受到开发人员的推崇,很多知名网站都推出了Android 客户端版本,例如腾讯.新浪.淘宝都有对应的版本.同时很多数据库应用程序都从原来的windows 桌面程序延伸到移动设备上,由于移动设备的性能及内存等肯定无法与台式机及笔记本电脑相比,因此访问数据库也不可能像桌面安装各种数据库的客户端,当然目前绝大多数数据库也没有直接运行在移动

ADO.NET访问数据库的步骤

ado|访问|数据|数据库 不论从语法来看,还是从风格和设计目标来看,ADO.NET都和ADO有显著的不同.在ASP中通过ADO访问数据库,一般要通过以下四个步骤: 1.创建一个到数据库的链路,即ADO.Connection: 2.查询一个数据集合,即执行SQL,产生一个Recordset: 3.对数据集合进行需要的操作: 4.关闭数据链路. 在ADO.NET里,这些步骤有很大的变化.ADO.NET的最重要概念之一是DataSet.DataSet是不依赖于数据库的独立数据集合.所谓独立,就是:即

有关ADO访问不同数据库的差别详细介绍

ado|访问|数据|数据库 Microsoft公司提供了统一的数据访问接口ActiveX Data Object,简称ADO.但实际应用编程中,访问不同的数据库,如Access.SQL Server或VFP,会存在一些"细微"差别,常常有这样的情况,用ADO对象访问某一数据库的程序都调试通过了,但用同样的程序访问其他数据库就存在这样或那样的问题,反之也一样.这种差别就笔者来看好像没什么意义,因为都是一个公司的产品:虽然这种差别不多,但要搞清它的来龙去脉,足以使用户忙乎一阵子,a无端增加

通过ADO.NET访问数据库

ado|访问|数据|数据库 通过ADO.NET访问数据库 作者:不详  -------------------------------------------------------------------------------- ADO.NET访问数据库的步骤不论从语法来看,还是从风格和设计目标来看,ADO.NET都和ADO有显著的不同.在ASP中通过ADO访问数据库,一般要通过以下四个步骤:1. 创建一个到数据库的链路,即ADO.Connection:2. 查询一个数据集合,即执行SQL,

如何使用ADO访问Oracle数据库存储过程

一.关于ADO 在基于Client/Server结构的数据库环境中,通过OLE DB接口可以存取数据,但它定义的是低层COM接口,不仅不易使用,而且不能被VB,VBA,VBScript等高级编程工具访问. 而使用ADO则可以很容易地使VB等编程语言直接访问数据(通过OLE DB接口).ADO是基于面向对象方法的,其对象模型如下图所示(略) 由上图可见,ADO对象模型总共才包括六个对象,相对于数据访问对象(DAO)来说简单得多.因此实际中常常使用它来访问数据库. 二.ADO访问数据库实例 下面,我

VC基于ADO技术访问数据库的方法_C 语言

本文实例讲述了VC基于ADO技术访问数据库的方法.分享给大家供大家参考.具体如下: 一.在StdAfx.h文件中添加 复制代码 代码如下: #import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF") 导入ADO引擎. 二.数据库应用层操作 void CADOExample1Dlg::OnBtnQuery() {

VC中使用ADO开发数据库应用程序简明教程_C 语言

本文实例讲述了VC中使用ADO开发数据库应用程序的方法.分享给大家供大家参考,具体如下: 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 OLE.DB 提供者访问和操作数据库服务器中的数据.ADO 最主要的优点是易于使用.速度快.内存支出少和磁盘遗迹小.ADO 在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量.高性能的接口.之所以