delphi 如何用ADO进行多线程查询数据库

delphi 如何用ADO进行多线程查询数据库,第1张

我刚做了一个在线程中使用ado的系统,实现方式如下:使用dm来存放

connection

,在各个线程中create

adoquery控件,connection属性设为dm中的connection,在使用完之后别忘了free。另外别忘了同步。好运!

sql设置好用户名跟密码以后比如sa 密码123

打开delphi放一个按钮,然后在控件栏那里选datacontrol,选第一个dbgrid放到form上,选dataaccess里面的第一个datasource,然后选ado——adoconnection放到form上,再选ado——adoquery放到form上。点选adoconnection左边的框体有个connectionstring点"…":d出来的对话框中点Build,然后选择从下数上来第五个,双击或者下一步,填入用户名跟密码(sa 123),在“3选择数据库”那里选择要打开的数据库,选上保存密码,点一下“测试连接”,点OK退出。出来以后继续在左边框体里面找LoginPrompt改成False。到adoquery了,点上它然后在左边框体的Connection那里下拉选择ADOConnection1,然后点选datasource,在左边框体找到dataset下拉选择adoquery1,然后再点选dbgrid,在左边框体找到datasource,下拉选择datasource1。双击刚才创建的按钮,假设你要打开的数据表名叫“销售订单”,输入

adoquery1close;

adoquery1sqlclear;

adoquery1sqladd('select from 销售订单 ');

adoquery1open;

运行,按按钮如果dbgrid有数据显示表示连接成功了,以上所有功能实现均可通过代码或者手工设置。

etChunk 方法

返回大的文本或二进制数据 Field 对象的全部或部分内容。

语法

variable = fieldGetChunk( Size )

返回值

返回 Variant。

ADO NET的设计目标 ADO NET是Microsoft公司发布的新一代数据存取技术 是一个全新的数据库访问模型 使应用程序的开发人员能方便的访问不同的数据源ADO NET提供对SQL Server等数据源以及通过OLEDB和XML公开的数据源的一致访问 数据共享应用程序可以使用ADO NET来连接到这些数据源 并检索 *** 作和更新数据 设计目标 n  支持断开式多层编程模式n  能够与XML紧密集成n  具有能够组合来自多个 不同数据源的数据通用数据表示形式n  具有为与数据库交互而优化的功能 ADO NET体系结构    ADO NET的两个核心组件 ( )DataSet ( )数据提供程序(DataProvider:包括Connection Command DataReader DataAdapter)  DataSetu  DataSet 是ADO NET的断开式结构的核心组件u  设计目的 为了实现独立于任何数据源的数据访问u  可以用于多种不同的数据源 用于XML数据 或用于应用程序本地数据u  DataSet包含一个或多个DataTable对象集合

数据提供程序(DataProvider)设计目标 为了实现数据 *** 作和对数据快速 只进 只读访问 NET框架提供了 个数据提供程序         SQL Server数据提供程序         OLE DB数据提供程序         ODBC数据提供程序         Oracle数据提供程序DataProvider的四个对象a)        Connection对象 提供与数据源的连接b)       Command对象 使用户能够访问用于返回数据 修改数据 运行存储过程以及发送或检索参数信息的数据库命令 c)        DataReader对象 从数据源中提供高性能的数据流 读取数据d)       DataAdapter对象 提供连接DataSet对象和数据源的桥梁DataAdapter使用Command对象在数据源中执行SQL命令 以便将数据加载到DataSet中 并使对DataSet中数据的更改与数据源保持一致数据库连接要访问数据库 首先必须建立与数据库的连接使用Connection对象创建和管理连接    连接字符串在建立连接时 通常要提供一些数据源的信息 如数据库的名称 数据库所在物理位置 用户账号 密码等等(和一般连接数据库吗没什么区别)通过Connection对象的ConnectionString属性来设置打开和关闭连接连接的两个主要方法是Open和CloseOpen方法使用ConnectionString属性中的信息联系数据源并建立一个打开的连接Close方法关闭连接 是非常必要的 因为大多数据源只支持有限书目的打开的连接 并且打开的连接占用宝贵的系统资源如果正在使用DataProvider或Command 则不必显示打开和关闭连接 因为当调用这些对象的某个方法(例如DataAdapter的Fill或Update方法)时 该方法将检查连接是否已经打开 如果没有 适配器将打开连接 执行其逻辑 然后再关闭连接 Command对象在用Connection对象成功连接数据库后 可以用mand对象对数据进行 *** 作 如对数据进行增 删 查 改等 *** 作Command对象表示要对数据源执行的一个SQL语句或存储过程DataAdapter对象DataAdapter(数据适配器)用来建立和初始化数据表 并将其填入DataSet对象 在内存中存储数据 DataAdapter的主要方法是Fill 用来将来自DataAdapter中的数据填入DataSet中DataSetDataSet对象是一个存储在内存中的离线数据库 它并未与数据库建立及时的连接DataSet对象专门用来存储从数据源中读出的数据 无论是SQL Server数据库还是Access数据库 在DataSet中存储方式都是一致的 用户无法从DataSet中判断读取的数据库类型DataReader对象如果不需要DataSet所提供的功能 则可以使用DataReader以只读方式返回数据因为节省了DataSet所使用的内存 并省去了创建DataSet并填充其内容所需要的必要处理 所以可以提高应用程序的性能

C#代码示例 [csharp]using System;using System Collections Generic;using System Linq;using System Text;using System Data SqlClient;using System Data;using System Text RegularExpressions;using System Windows Forms;namespace 图书管理 {class BaseOperate{//建立数据库连接public SqlConnection getcon(){string str_sqlcon = data source= ;database=library_sys;uid=sa;pwd= ;try{SqlConnection myCon = new SqlConnection(str_sqlcon) return myCon;}catch (Exception ex){MessageBox Show( 出错了 链接出错 MessageBoxButtons OK) throw ex;}}//执行sqlmand命令 但无返回值public void get(string sqlstring){SqlConnection sqlcon = this getcon() sqlcon Open() SqlCommand sql = new SqlCommand(sqlstring sqlcon) sql ExecuteNonQuery() sql Dispose() sqlcon Close() sqlcon Dispose() }//执行sql语句并返回一个dataset数据集对象public DataSet getds(string sqlstring){SqlConnection sqlcon = this getcon() SqlDataAdapter sqlda = new SqlDataAdapter(sqlstring sqlcon) DataSet myds = new DataSet() sqlda Fill(myds) return myds;}//执行sql语句并返回一个sqlReader类型的对象 用于读取查询的数据public SqlDataReader getread(string sqlstring){SqlConnection sqlcon = this getcon() SqlCommand sql = new SqlCommand(sqlstring sqlcon) sqlcon Open() SqlDataReader sqlread = sql ExecuteReader(CommandBehavior CloseConnection) return sqlread;} lishixinzhi/Article/program/net/201311/12962

vbnet

首先引用Access adonet命名空间

imports systemdataoledb

连接数据库代码

dim connstr as string="provider=microsoftjetoledb40;data source='" & dbpath & "'"

上面是数据库连接字符串 dbpath 是数据库路径

dim conn as new oledbconnection(connstr)

connopen

打开数据库连接

dim sql as string="select from A"

dim cmd as new oledbcommand(sql,conn)

dim dr as oledbdatareader=cmdexecutereader

textbox1text=drgetstring(1)

drclose

connclose

读取A表中第二个字段的内容到文本框。

关闭数据读取器

关闭数据库连接

一、使用DSN连接

使用ODBCDSN连接数据库有两种方式,一种为SYSTEMDSN、一种为DSN文件,因此在使用DSN连接方式之前必段创建一个SYSTEMDSN或DSNFILE

1、ODBC-DSNoConn

Open"DSN=AdvWorks;"&_"Uid=Admin;"&_"Pwd=;2、ODBC-FileDSNoConn

Open"FILEDSN=c:somepathmydb

dsn;"&_"Uid=Admin;"&_"Pwd=;"二、不使用DSN连接方式1、ODBCDriverforMySQL(viaMyODBC)---连接一个本地数据库oConn

Open"Driver={mySQL};"&_"Server=;"&_"Option=16834;"&_"Database=mydb;"---连接一个远程数据库oConn

Open"Driver={mySQL};"&_"Server=db1

database

com;"&_"Port=3306;"&_"Option=131072;"&_"Stmt=;"&_"Database=mydb;"&_"Uid=myUsername;"&_"Pwd=myPassword;"2、OLEDBProviderforSQLServer连接这个链接只需写好连接字符串,格式:conn

="Driver={sqlserver};server=服务器名;uid=登录名;pwd=密码;database=数据源"使用无源连接优点较多:可以不创建DSN,这样就能简化客户应用程序的设置和安装

不必在系统注册表中查找DSN,加快连接速度

更有效到控制服务器及其它连接参数,从而提高应用程序和系统的安全性

当然还有其他的连接方式,以后遇到了再补充

<p>如果是

access

2003

或者以前的版本,驱动一般自带,也可以单独安装

ado

驱动。</p>

<p>如果是

access

2007及以后的版本,需要单独安装,附件即是。</p>

<p>

</p>

<p>

</p>

以上就是关于delphi 如何用ADO进行多线程查询数据库全部的内容,包括:delphi 如何用ADO进行多线程查询数据库、DELPHI 如何用ADO连接MYSQL数据库、怎么用ADO访问SQLite数据库中的二进制数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9834032.html

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

发表评论

登录后才能评论

评论列表(0条)

保存