📄 ufunction.pas
字号:
unit Ufunction;
interface
uses
SysUtils,db,adodb,Variants, Classes, Graphics, Controls,messages,dialogs;
//删除源表记录传入参数TBNAME 传出参数TRUE |FALSE
Function delete_source_record(tbname:string):boolean;
//插入记录过程允许插入重复记录
procedure double_ins_record();
//插入记录过程不允许插入重复记录
Procedure single_ins_record();
implementation
uses unit1;
//-----------------------------------------------------
// 功能说明: 删除源表中所有记录
// 参数说明 传入: 表名 TBNAME 类型:STRING;
// 传出: BOOLEAN
// 函数编写 向文
// 修改日期 2006-10-15
//------------------------------------------------------
Function delete_source_record(tbname:string):boolean;
var
delquery:tadoquery;
begin
try
delquery:=tadoquery.Create(nil);
delquery.Connection:=form1.adoconnstr;
delquery.SQL.Clear;
delquery.SQL.Text:='delete from '+tbname;
delquery.ExecSQl;
result:=true;
delquery.Free;
except
on E:Exception do
begin
result:=false;
showmessage(E.Message);
end;
end;
end;
//-----------------------------------------------------
// 功能说明 插入记录过程 允许插入重复记录
// 参数说明 无
//
// 函数编写 向文
// 修改日期 2006-10-15
//------------------------------------------------------
procedure double_ins_record();
var
tmp,sqlstr1,sqlstr2:string;
rectotal,i:integer;
insertsql:tadotable;
begin
//导入到数据库中,先整理字段对应表。
// copy(sqlstr1,0,pos('=',sqlstr1)-1); 取等号前字符串
// copy(sqlstr1,pos('=',sqlstr1)+1,length(sqlstr1)-pos('=',sqlstr1)); 取等号后字符串
form1.listbox2.Refresh;
insertsql:=tadotable.Create(nil);
insertsql.Connection:=form1.adoconnstr;
insertsql.TableName:=form1.tbnamelist.Text;
insertsql.Active:=true;
form1.adoquery1.First;
insertsql.First;
rectotal:=form1.adoquery1.RecordCount;
form1.pbar.Max:=rectotal;
form1.pbar.Position:=0;
while not form1.adoquery1.Eof do
begin
insertsql.Append;
for i:=0 to form1.listbox2.Count-1 do //分解字段
begin
tmp:=form1.listbox2.Items.Strings[i];
sqlstr1:=copy(tmp,0,pos('=',tmp)-1);
sqlstr2:=copy(tmp,pos('=',tmp)+1,length(tmp)-pos('=',tmp));
insertsql.FieldByName(sqlstr1).Value:=form1.adoquery1.fieldbyname(sqlstr2).AsString;
end;
form1.pbar.Position:=form1.pbar.Position+1;
insertsql.Post;
form1.adoquery1.Next;
end;
// application.MessageBox('数据导入成功','任务提示',mb_ok);
end;
//-----------------------------------------------------
// 功能说明 插入记录过程 不允许插入重复记录
// 参数说明 无
//
// 函数编写 向文
// 修改日期 2006-10-15
//------------------------------------------------------
procedure single_ins_record();
var
tmp,sqlstr1,sqlstr2:string;
rectotal,i:integer;
insertsql:tadotable;
begin
form1.listbox2.Refresh;
insertsql:=tadotable.Create(nil);
insertsql.Connection:=form1.adoconnstr;
insertsql.TableName:=form1.tbnamelist.Text;
insertsql.Active:=true;
form1.adoquery1.First;
insertsql.First;
rectotal:=form1.adoquery1.RecordCount;
form1.pbar.Max:=rectotal;
form1.pbar.Position:=0;
while not form1.adoquery1.Eof do
begin
//检查是否存在依据关键字确定的重复记录
insertsql.Append;
for i:=0 to form1.listbox2.Count-1 do //分解字段
begin
tmp:=form1.listbox2.Items.Strings[i];
sqlstr1:=copy(tmp,0,pos('=',tmp)-1);
sqlstr2:=copy(tmp,pos('=',tmp)+1,length(tmp)-pos('=',tmp));
insertsql.FieldByName(sqlstr1).Value:=form1.adoquery1.fieldbyname(sqlstr2).AsString;
end;
insertsql.Post;
form1.pbar.Position:=form1.pbar.Position+1;
form1.adoquery1.Next;
end;
// application.MessageBox('数据导入成功','任务提示',mb_ok);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -