📄 u_dbpublicpack.pas
字号:
unit U_DBPublicPack;
Interface
Uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Menus,
Dialogs,Buttons,StdCtrls,Mask,ExtCtrls,ADODB,QControls,ComCtrls,IniFiles,CheckLst,
ShellAPI,DateUtils,ComObj,Math,DBGrids,U_RecordStruct,Spin, U_PulicPack;
//清空控制面板的显示数据
Procedure ListNull(ControlMod:TPanel);
//设置DBGRID的属性
Procedure SetDbgridCaption(Dbgrid:TDbgrid;ColumnCount,FieldWidth:Integer;FieldName,TitleCaption:String);
//获取数据库连接字符串(SqlServer2000)
Function GetDBConnectionString(ComputerName,DataBaseName,UserName,UserPassWord:String):String;Overload;
//获取数据库连接字符串(Oracle9i)
Function GetDBConnectionString(DataBaseName,UserName,UserPassWord:String):String;Overload;
//获取数据库连接字符串(DataSource)
Function GetDBConnectionString(DataSourceName,DataBaseFilePath:String):String;Overload;
//连接SQLSERVER2000数据库
Function ConnectDataBase(ADOConnection:TADOConnection;ComputerName,DataBaseName,UserName,UserPassWord:String):Boolean;OverLoad;
//连接SQLSERVER2000数据库
Function ConnectDataBase(ADOConnection:TADOConnection;DBConnectionString:String):Boolean;OverLoad;
//连接SQLSERVER2000的服务器
Procedure ConnectServer(ADOConnection:TADOConnection;ServerName,UserName,PassWord:String);OverLoad;
//连接SQLSERVER2000的服务器
Procedure ConnectServer(DBConnectionString,ServerName,UserName,PassWord:String);OverLoad;
//获取数据库的时间
Function GetDBDateTime(DBConnectionString:String):TDateTime;OverLoad;
//获取数据库的时间
Function GetOracleDBDateTime(DBConnectionString:String):TDateTime;
//获取数据库的时间
Function GetDBDateTime(ADOConnection:TADOConnection):TDateTime;OverLoad;
//判断是否可以登录
Function CheckLogin(ADOConnection:TADOConnection;LoginTableName:String;LoginUserCode:String;LoginUserPassWord:String):Integer;OverLoad;
//判断是否可以登录
Function CheckLogin(DBConnectionString,LoginTableName:String;LoginUserCode:String;LoginUserPassWord:String):Integer;OverLoad;
//插入新记录
Function InsertRec(ADOTable:TADOTable;ControlMod:TPanel):Boolean;OverLoad;
//插入新记录
Function InsertRec(ADOQuery:TADOQuery;ControlMod:TPanel;IsHaveAutoID:Boolean):Boolean;OverLoad;
//修改表记录
Function UpdateRec(ADOTable:TADOTable;ControlMod:TPanel):Boolean;OverLoad;
//修改表记录
Function UpdateRec(ADOQuery:TADOQuery;ControlMod:TPanel;IsHaveAutoID:Boolean):Boolean;OverLoad;
//删除表记录
Function DeleteRec(ADOTable:TAdoTable;ControlMod:TPanel):Boolean;OverLoad;
//删除表记录
Function DeleteRec(ADOQuery:TADOQuery;ControlMod:TPanel;IsHaveAutoID:Boolean):Boolean;OverLoad;
//刷新数据
Procedure FlashRec(ADOTable:TAdoTable);OverLoad;
//刷新数据
Procedure FlashRec(ADOQuery:TADOQuery);OverLoad;
//显示表数据
Procedure ListRec(ADOTable:TAdoTable;ControlMod:TPanel;ListOption:Integer);OverLoad;
//显示表数据
Procedure ListRec(ADOQuery:TADOQuery;ControlMod:TPanel;ListOption:Integer;IsHaveAutoID:Boolean);OverLoad;
//删除给定的表
Function DropTable(ADOConnection:TADOConnection;TableName:String):Boolean;OverLoad;
//删除给定的表
Function DropTable(DBConnectionString,TableName:String):Boolean;OverLoad;
//删除给定的数据库
Function DropDataBase(ADOConnection:TADOConnection;DataBaseName:String):Boolean;OverLoad;
//删除给定的数据库
Function DropDataBase(DBConnectionString,DataBaseName:String):Boolean;OverLoad;
//备份指定的数据库到给定的路径文件
Function BackUpDataBase(ADOConnection:TADOConnection;DataBaseName,FileName:String):Boolean;OverLoad;
//备份指定的数据库到给定的路径文件
Function BackUpDataBase(DBConnectionString,DataBaseName,FileName:String):Boolean;OverLoad;
//还原指定的路径文件到给定的数据库
Function RestoreDataBase(ADOConnection:TADOConnection;DataBaseName,FileName:String):Boolean;OverLoad;
//还原指定的路径文件到给定的数据库
Function RestoreDataBase(DBConnectionString,DataBaseName,FileName:String):Boolean;OverLoad;
//删除给定的数据库用户
Function DropUser(ADOConnection:TADOConnection;UserName:String):Boolean;OverLoad;
//删除给定的数据库用户
Function DropUser(DBConnectionString,UserName:String):Boolean;OverLoad;
//删除给定的触发器
Function DropTrigger(ADOConnection:TADOConnection;TriggerName:String):Boolean;OverLoad;
//删除给定的触发器
Function DropTrigger(DBConnectionString,TriggerName:String):Boolean;OverLoad;
//删除给定的存储过程
Function DropProcedure(ADOConnection:TADOConnection;ProcedureName:String):Boolean;OverLoad;
//删除给定的存储过程
Function DropProcedure(DBConnectionString,ProcedureName:String):Boolean;OverLoad;
//删除给定的视图
Function DropView(ADOConnection:TADOConnection;ViewName:String):Boolean;OverLoad;
//删除给定的视图
Function DropView(DBConnectionString,ViewName:String):Boolean;OverLoad;
//从指定的表取出表结构
Function GetTableStruct(ADOConnection:TADOConnection;ComputeName,DataBaseName,TableName,StructTableName:String):String;OverLoad;
//从指定的表取出表结构
Function GetTableStruct(DBConnectionString,ComputeName,DataBaseName,TableName,StructTableName:String):String;OverLoad;
//创建一个数据表,表结构从存放数据表结构中取
Function CreateTableName(ADOConnection:TADOConnection;ComputeName,DataBaseName,TableName,StructTableName:String):Boolean;OverLoad;
//创建一个数据表,表结构从存放数据表结构中取
Function CreateTableName(DBConnectionString,ComputeName,DataBaseName,TableName,StructTableName:String):Boolean;OverLoad;
//修改表名
Function UpdateTableName(ADOConnection:TADOConnection;OldTableName:String;NewTableName:String):Boolean;OverLoad;
//修改表名
Function UpdateTableName(DBConnectionString,OldTableName:String;NewTableName:String):Boolean;OverLoad;
//修改数据库名
Function UpdateDataBaseName(ADOConnection:TADOConnection;OldDataBaseName:String;NewDataBaseName:String):Boolean;OverLoad;
//修改数据库名
Function UpdateDataBaseName(DBConnectionString,OldDataBaseName:String;NewDataBaseName:String):Boolean;OverLoad;
//显性执行Sql语句
Function ExecSqlStr(var ADOQuery:TADOQuery;DBConnectionString,SqlStr:String;OpenFlag:Boolean):Boolean;OverLoad;
//显性执行Sql语句
Function ExecSqlStr(Var ADOQuery:TADOQuery;ADOConnection:TADOConnection;SqlStr:String;OpenFlag:Boolean):Boolean;OverLoad;
//隐性执行Sql语句
Function ExecSqlStr(DBConnectionString,SqlStr:String):Boolean;OverLoad;
//隐性执行Sql语句
Function ExecSqlStr(ADOConnection:TADOConnection;SqlStr:String):Boolean;OverLoad;
//调整本机时间与数据库服务器一致
Function AdjustLocalDate(ADOConnection:TADOConnection):Boolean;OverLoad;
//调整本机时间与数据库服务器一致
Function AdjustLocalDate(DBConnectionString:String):Boolean;OverLoad;
//2005-04-27
Procedure GetAllDateBaseName(aList:TStrings;aServerName:String);
Procedure GetAllTableName(aServerName,aDataBaseName:String;aList:TStrings);
Implementation
Uses U_OtherPublicPack, DB, U_Main;
//清空控制面板的显示数据
Procedure ListNull(ControlMod:TPanel);
Var
Count:Integer;
Begin
For Count:=0 To ControlMod.ControlCount-1 Do
Begin
If Controlmod.Controls[Count].Tag=0 Then
Continue;
If Controlmod.controls[Count] is TEdit Then
(Controlmod.Controls[Count] as TEdit).Text:='';
If (Controlmod.controls[Count] is TComboBox) Then
(Controlmod.Controls[Count] as TComboBox).Text:='';
If (Controlmod.controls[Count] is TMemo) Then
(Controlmod.Controls[Count] as TMemo).Text:='';
If (Controlmod.controls[Count] is TSpinEdit) Then
(Controlmod.Controls[Count] as TSpinEdit).Text:='';
If (Controlmod.Controls[Count] is TDateTimePicker) Then
(Controlmod.Controls[Count] as TDateTimePicker).DateTime:=Now;
End;
End;
//设置DBGRID的属性
Procedure SetDbgridCaption(Dbgrid:TDbgrid;ColumnCount,FieldWidth:Integer;FieldName,TitleCaption:String);
Begin
Dbgrid.Columns[ColumnCount].FieldName:=FieldName;
Dbgrid.Columns[ColumnCount].Title.Caption:=TitleCaption;
Dbgrid.Columns[ColumnCount].Title.Alignment:=taCenter;
If FieldWidth>-1 Then
Dbgrid.Columns[ColumnCount].Width:=FieldWidth;
End;
//获取数据库连接字符串(SqlServer2000)
Function GetDBConnectionString(ComputerName,DataBaseName,UserName,UserPassWord:String):String;
Var
DBConnectionString:String;
Begin
DBConnectionString:='Provider=SQLOLEDB.1;Password='+UserPassWord+';Persist Security Info=True;User ID='+UserName+';Initial Catalog='+DataBaseName+';Data Source='+ComputerName;
Result:=DBConnectionString;
End;
//获取数据库连接字符串(Oracle9i)
Function GetDBConnectionString(DataBaseName,UserName,UserPassWord:String):String;
Var
DBConnectionString:String;
Begin
DBConnectionString:='Provider=MSDAORA.1;Password='+UserPassWord+';User ID='+UserName+';Data Source='+DataBaseName+';Persist Security Info=True';
Result:=DBConnectionString;
End;
//获取数据库连接字符串(DataSource)
Function GetDBConnectionString(DataSourceName,DataBaseFilePath:String):String;
Var
DBConnectionString:String;
Begin
DBConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source='+DataSourceName+';Initial Catalog='+DataBaseFilePath;
Result:=DBConnectionString;
End;
//连接SQLSERVER2000数据库
Function ConnectDataBase(ADOConnection:TADOConnection;ComputerName,DataBaseName,UserName,UserPassWord:String):Boolean;
Begin
Try
With ADOConnection Do
Begin
ADOConnection.LoginPrompt:=False;
ConnectionString:='Provider=SQLOLEDB.1;Password='+UserPassWord+';Persist Security Info=True;User ID='+UserName+';Initial Catalog='+DataBaseName+';Data Source='+ComputerName;
Connected:=False;
Connected:=True;
//MessageDLG('连接数据库成功!',MtError,[mbok],0);
Result:=True;
End;
Except
On E:EOleException Do
Begin
Result:=False;
Beep();Beep();
//MessageDLG('Error:'+E.Message,MtWarning,[MBOK],0);
End;
End;
End;
//连接SQLSERVER2000数据库
Function ConnectDataBase(ADOConnection:TADOConnection;DBConnectionString:String):Boolean;
Begin
With ADOConnection Do
Begin
ADOConnection.LoginPrompt:=False;
Try
Connected:=False;
ConnectionString:=DBConnectionString;
Connected:=True;
Result:=True;
Except
On E:EOleException Do
Begin
Result:=False;
Beep();Beep();
//MessageDLG('Error:'+E.Message,MtWarning,[MBOK],0);
End;
End;
End;
End;
//连接SQLSERVER2000的服务器
Procedure ConnectServer(ADOConnection:TADOConnection;ServerName,UserName,PassWord:String);
Var
ADOQuery:TADOQuery;
Begin
Try
ADOQuery:=TADOQuery.Create(nil);
ADOQuery.Connection:=ADOConnection;
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('Exec sp_AddLinkedServer '+''''+ServerName+'''');
ADOQuery.ExecSQL;
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('Exec sp_addlinkedsrvlogin '+''''+ServerName+''''+',false,null,'+''''+UserName+''''+','+''''+PassWord+'''');
ADOQuery.ExecSQL;
Except
On E:EOleException Do
Begin
Beep();Beep();
//MessageDLG('Error:'+E.Message,MtWarning,[MBOK],0);
End;
End;
ADOQuery.Free;
End;
//连接SQLSERVER2000的服务器
Procedure ConnectServer(DBConnectionString,ServerName,UserName,PassWord:String);
Var
ADOQuery:TADOQuery;
Begin
Try
ADOQuery:=TADOQuery.Create(nil);
ADOQuery.ConnectionString:=DBConnectionString;
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('Exec sp_AddLinkedServer '+''''+ServerName+'''');
ADOQuery.ExecSQL;
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('Exec sp_addlinkedsrvlogin '+''''+ServerName+''''+',false,null,'+''''+UserName+''''+','+''''+PassWord+'''');
ADOQuery.ExecSQL;
Except
On E:EOleException Do
Begin
Beep();Beep();
//MessageDLG('Error:'+E.Message,MtWarning,[MBOK],0);
End;
End;
ADOQuery.Free;
End;
//获取数据库的时间
Function GetDBDateTime(DBConnectionString:String):TDateTime;
Var
ADOQuery:TADOQuery;
StrSql,RepeatStr:String;
Begin
Try
ADOQuery:=TADOQuery.Create(nil);
With ADOQuery Do
Begin
ConnectionString:=DBConnectionString;
Close;
SQL.Clear;
StrSql:='Select GetDate() As DbCurrentDateTime';
SQL.Add(StrSql);
Open;
If Not Eof Then
Begin
Result:=FieldByName('DbCurrentDateTime').AsDateTime;
End;
End;
Except
On E:EOleException Do
Begin
Beep();Beep();
//MessageDLG('Error:'+E.Message,MtWarning,[MBOK],0);
End;
End;
ADOQuery.Free;
End;
//获取数据库的时间
Function GetOracleDBDateTime(DBConnectionString:String):TDateTime;
Var
ADOQuery:TADOQuery;
StrSql,RepeatStr:String;
Begin
Try
ADOQuery:=TADOQuery.Create(nil);
With ADOQuery Do
Begin
ConnectionString:=DBConnectionString;
Close;
SQL.Clear;
StrSql:='Select SysDate As CurrentDateTime From Dual';
SQL.Add(StrSql);
Open;
If Not Eof Then
Begin
Result:=FieldByName('CurrentDateTime').AsDateTime;
End;
End;
Except
On E:EOleException Do
Begin
Beep();Beep();
//MessageDLG('Error:'+E.Message,MtWarning,[MBOK],0);
End;
End;
ADOQuery.Free;
End;
//获取数据库的时间
Function GetDBDateTime(ADOConnection:TADOConnection):TDateTime;
Var
ADOQuery:TADOQuery;
StrSql:String;
Begin
Try
ADOQuery:=TADOQuery.Create(nil);
With ADOQuery Do
Begin
ADOQuery.Connection:=ADOConnection;
Close;
SQL.Clear;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -