DELPHI 数据库操作类(工具类)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了DELPHI 数据库操作类(工具类),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4886字,纯文字阅读大概需要7分钟。
内容图文
DELPHI 数据库连接类
做的时候目地是可以通过类的创建和释放进行数据库的短连接,在做服务端的时候每一个请求都通过类生成一个数据连接
unit UnDm; interface uses SysUtils, Classes, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, Menus, StdCtrls, ADODB, DB,inifiles; type TRecordResult = (RRError, RRZero, RROK); TDataStatus = (DsSel, DsEdit, DsAdd); type TDataConnection = class DataAdoConn: TADOConnection; qryTemp1: TADOQuery; qryTemp2: TADOQuery; qryTemp3: TADOQuery; qryTemp4: TADOQuery; privatepublicconstructorCreate; overload; //连接数据库function DbConn: Boolean; //启动事物function AdoBeginTrans: Boolean; //回滚事物function AdoRollbackTrans: Boolean; //提交事物function AdoCommitTrans: Boolean; // Function GetOpenQuery(const sSql, sTitle: String; _AdoQry: TADOQuery; Is_View: Boolean = True): TRecordResult; overload; function UpdateSql(const sSql, sTitle: String; IsView: Boolean= True): TRecordResult; function GetAllUser: Integer; end; implementationuses Querypa; constructor TDataConnection.Create; var I:Integer; begininherited; DataAdoConn:=TADOConnection.Create(nil); qryTemp1:=TADOQuery.Create(nil); qryTemp2:=TADOQuery.Create(nil); qryTemp3:=TADOQuery.Create(nil); qryTemp4:=TADOQuery.Create(nil); DataAdoConn.LoginPrompt:=False; qryTemp1.Connection:=DataAdoConn; qryTemp2.Connection:=DataAdoConn; qryTemp3.Connection:=DataAdoConn; qryTemp4.Connection:=DataAdoConn; end; function TDataConnection.DbConn: Boolean; const//sDbConn = ‘Provider=OraOLEDB.Oracle.1;Password=%s;Persist Security Info=True;User ID=%s;Data Source=%s‘; sDbConn = ‘Provider=OraOLEDB.Oracle.1;Password=%s;User ID=%s;Data Source=%s;Persist Security Info=True‘; var sUdlFile: String; ServerIni:TiniFile; SOURCE,USER,PASSWORD:string; sSql:string; begin//获得数据库连接串 ServerIni := TIniFile.Create(ExtractFilePath(Application.ExeName) + ‘ServerInfor.Ini‘); SOURCE := ServerIni.ReadString(‘HIS‘, ‘SOURCE‘, ‘0‘); USER := ServerIni.ReadString(‘HIS‘, ‘USER‘, ‘0‘); PASSWORD := ServerIni.ReadString(‘HIS‘, ‘PASSWORD‘, ‘0‘); sSql := Format(sDbConn, [PASSWORD, USER, SOURCE]); Result := False; if DataAdoConn.Connected then DataAdoConn.Close; //连接数据库 DataAdoConn.ConnectionString :=sSql; //‘FILE NAME=‘+sUdlFile; Try DataAdoConn.Open; ifnot DataAdoConn.Connected thenbegin Result :=false; Exit; endelsebegin Result :=true; end; Except Result := False; Exit; end; end; function TDataConnection.AdoBeginTrans: Boolean; Var nResult: Integer; begin Result := False; Try nResult := DataAdoConn.BeginTrans; if nResult > 0then Result := True; except On E: Exception do Begin SaveError(‘启动事务‘, E.Message); end; end; end; function TDataConnection.AdoCommitTrans: Boolean; Var nResult: Integer; begin Result := False; Try DataAdoConn.CommitTrans; Result := True; except On E: Exception do Begin SaveError(‘提交事务‘, E.Message); end; end; end; function TDataConnection.AdoRollbackTrans: Boolean; Var nResult: Integer; begin Result := False; Try DataAdoConn.RollbackTrans; Result:True; except On E: Exception do Begin SaveError(‘回滚事务‘, E.Message); end; end; end; /// <summary> /// 更新数据库涵数 插入或修改 /// sSql SQL语句 /// sTitle执行标题 /// IsView出错后是否弹出消息 /// </summary>function TDataConnection.UpdateSql(const sSql, sTitle: String; IsView: Boolean): TRecordResult; Var nResult: Integer; AdoQry:TADOQuery; begin AdoQry:=TADOQuery.Create(nil); AdoQry.Connection:= DataAdoConn; Result := RRError; With AdoQry do Begin Close; SQL.Text := sSql; Try nResult := ExecSQL; if nResult = 0then Result := RRZero else Result := RROK; Except on E: Exception do Begin SaveError(sTitle, sSql+ #10#13 +E.Message); MsgShow(E.Message, 3); Exit; end; end; end; if Result = RRZero then Begin SaveError(sTitle, sSql+ #10#13 +‘执行没有返回正确结果!‘); if IsView then MsgShow(‘执行没有返回正确结果!‘, 0); Exit; end; end; /// <summary> /// 查询数据库语句 /// sSql SQL语句 /// sTitle执行标题 /// _AdoQry Adoquery控件 /// IsView出错后是否弹出消息 /// </summary>function TDataConnection.GetOpenQuery(const sSql, sTitle: String; _AdoQry: TADOQuery; Is_View: Boolean): TRecordResult; begin Result := RRError; With _AdoQry do Begin Close; SQL.Text := sSql; Try Open; if IsEmpty then Result := RRZero; if Not IsEmpty then Result := RROK; Except on E: Exception do Begin SaveError(sTitle, sSql+ #10#13 +E.Message); MsgShow(E.Message, 3); Exit; end; end; end; if (Result = RRZero) and Is_View then Begin SaveError(sTitle, sSql+ #10#13 + sTitle); MsgShow(sTitle, 3); end; end; function TDataConnection.GetAllUser: Integer; beginwith qryTemp1 dobegin Close; SQL.Text := ‘SELECT USERID, name From T_USERS‘; Open; end; Result := qryTemp1.RecordCount; end; end. ————————————————
声明
var dm: TDataConnection;
创建
// 首选连接服务器数据库 dm:=TDataConnection.Create; ifnot dm.DbConn thenbegin MsgShow(‘服务器数据库连接失败,无法启动服务‘,1); dm.Free; Exit; end;
执行SQL语句
strSQL:=‘ UPDATE A SET AA=‘‘1‘‘‘; DM.UpdateSql(strSQL,‘更新数据库‘,false);
查询数据库
strSQL:=‘ SELECT * FROM A‘; DM.GetOpenQuery(strSQL,‘更新数据库‘,ADOQUERY1,false);
事务就添加TRY后在里面增加事务就可以
原文:https://www.cnblogs.com/jijm123/p/11879398.html
内容总结
以上是互联网集市为您收集整理的DELPHI 数据库操作类(工具类)全部内容,希望文章能够帮你解决DELPHI 数据库操作类(工具类)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。