unit USQLConnect; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Dialogs, DBXpress, FMTBcd, StdCtrls, Mask, DBCtrls, DB, SqlExpr,ExtCtrls,Buttons; type TTouSForm = class(TForm) //窗体使用组件说明 SQLConnection1: TSQLConnection; //连接组件 DataSource1: TDataSource; SQLQuery1: TSQLQuery; SQLMonitor1: TSQLMonitor; //监视连接组件与远程数据库服务器之间通信的组件 DBNavigator1: TDBNavigator; DBEdit2: TDBEdit; DBEdit3: TDBEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; DBMemo1: TDBMemo; Label5: TLabel; DBEdit4: TDBEdit; Label6: TLabel; DBEdit5: TDBEdit; Label7: TLabel; DBEdit6: TDBEdit; DBEdit7: TDBEdit; Label8: TLabel; Label9: TLabel; DBEdit8: TDBEdit; Label10: TLabel; ExitBtn: TBitBtn; DBMemo2: TDBMemo; BitBtn3: TBitBtn; YearComboBox: TComboBox; BitBtn2: TBitBtn; MonthComboBox: TComboBox; procedure FormCreate(Sender: TObject); //定义事件处理过程 procedure ExitBtnClick(Sender: TObject); procedure YearComboBoxChange(Sender: TObject); procedure MonthComboBoxChange(Sender: TObject); private { Private declarations } year1,date1:string; month1,month2:string; //定义全局变量 public { Public declarations } procedure Comm_Query; //定义非事件处理过程 end; var TouSForm: TTouSForm; implementation {$R *.dfm} procedure TTouSForm.FormCreate(Sender: TObject); var i:integer; Year, Month, Day:Word; //定义获取年月日的变量 Present:TDateTime; begin SQLQuery1.Close; SQLConnection1.Connected:=false; //确保与数据库的连接状态 SQLConnection1.Connected:=true; //打开与远程数据库服务器的连接 SQLQuery1.sql.clear; {清除原查询语句} {在程序执行时,生成SQL语句,它从产品投诉表CPTU中获取有关信息} Present:= Now; //获取系统时间 DecodeDate(Present, Year, Month, Day); //拆分系统年月日 YearComboBox.items.clear; YearComboBox.itemindex:=0; YearComboBox.text:=inttostr(Year); //获取当前年份 year1:=YearComboBox.text; for i:=1 to 5 do begin YearComboBox.items.add(inttostr(year)); year:=year-1; end; month1:='01-01'; //设置初始的日期时间段 month2:='12-31'; Comm_Query; //调用动态生成SQL语句,查询数据过程 end; procedure TTouSForm.Comm_Query; //动态生成查询条件,完成从远程数据库服务器中获取数据 begin SQLQuery1.Close; SQLQuery1.sql.clear; date1:=''''+year1+'-'+month1+''' and '''+year1+'-'+month2+''''; SQLQuery1.sql.add('select * from cpts where tsrq between '+date1); //根据用户的选择动态生成SELECT语句 SQLQuery1.open; //打开查询,从服务器获取数据 end; procedure TTouSForm.ExitBtnClick(Sender: TObject); begin SQLQuery1.Close; //关闭查询 SQLConnection1.Connected:=false; //关闭与远程数据库服务器的连接 TouSForm.Close; //关闭运行的窗体 end; procedure TTouSForm.YearComboBoxChange(Sender: TObject); //选择顾客投诉年份的处理过程 begin year1:=YearComboBox.text; //获取选择的年份 Comm_Query; end; procedure TTouSForm.MonthComboBoxChange(Sender: TObject); //选择顾客投诉月份的处理过程,根据选择的月份设置查询的开始和结束日期 begin if MonthComboBox.text='一月' then begin month1:='01-01'; month2:='01-31'; end; if MonthComboBox.text='二月' then begin month1:='02-01'; month2:='02-28'; end; if MonthComboBox.text='三月' then begin month1:='03-01'; month2:='03-31'; end; if MonthComboBox.text='四月' then begin month1:='04-01'; month2:='04-30'; end; if MonthComboBox.text='五月' then begin month1:='05-01'; month2:='05-31'; end; if MonthComboBox.text='六月' then begin month1:='06-01'; month2:='06-30'; end; //为减少代码,从7月到12月略去, if MonthComboBox.text='上半年' then begin month1:='01-01'; month2:='06-30'; end; if MonthComboBox.text='下半年' then begin month1:='07-01'; month2:='12-31'; end; if MonthComboBox.text='全年' then begin month1:='01-01'; month2:='12-31'; end; Comm_Query; end; end.
使用dbExpress方式连接Oracle数据库
最新推荐文章于 2023-10-06 10:08:49 发布