请教,错在哪?不要紧张
1、我的意思是把人员信息表记录插入工资表,并且把25,0,0,2003,3 分别插入出勤天数,奖金,安装费,工资年度,工资月份中,
2、其中人员信息表的序号(integer),姓名(alpha 8),日工资(integer),工资表的编号(long integer),姓名(alpha 8),日工资(number),出勤天数(long integer),奖金(number),安装费(number),工资年度(number),工资月份(number),
3、在delphi的 SQL Explorer运行
insert into 工资表(编号,姓名,日工资,出勤天数,奖金,安装费,工资年度,工资月份)
select distinct 序号,姓名,日工资,25,0,0,2003,3 from 人员信息表
的报错提示为‘Type mismatch in expression’;请教错在哪?4、实际的例子见下:
var
temp,asql:string;
i:integer;date1,date2:tdatetime;
begin
table1.Filter:='工资年度='+se_year.Text +' and 工资月份='+se_month.Text ;
table1.Filtered:=true;
if table1.RecordCount=0 then
begin
temp:='select distinct 序号,姓名,日工资,25,0,0,'+se_year.Text+','+se_month.text+' from 人员信息表.db';
asql:='insert into 工资表(编号,姓名,日工资,出勤天数,奖金,安装费,工资年度,工资月份) ' +
' select distinct 序号,姓名,日工资,25,0,0,'+se_year.Text+','+se_month.text+' from 人员信息表.db;';
query1.SQL.Text :=asql;
query1.ExecSQL;
table1.Refresh;
table1.First; for i:=0 to table1.recordcount-1 do
begin
query1.Close;
query1.sql.Text:='select sum(安装费) from 安装记录表.db where 主安装人='''
+table1.Fields[1].AsString+''''+' and 安装日期>=:d1 and 安装日期<:d2'; date1:=encodedate(se_year.Value,se_month.Value ,1);
date2:=encodedate(se_year.Value,se_month.Value+1,1);
query1.ParamByName('d1').AsDateTime:=date1;
query1.ParamByName('d2').AsDateTime:=date2;
query1.Open;
各位大虾,就是上面的,跟踪在table1.Refresh,提示的信息是‘Type mismatch in expression’;请教错在哪?怎么解决呢
1、我的意思是把人员信息表记录插入工资表,并且把25,0,0,2003,3 分别插入出勤天数,奖金,安装费,工资年度,工资月份中,
2、其中人员信息表的序号(integer),姓名(alpha 8),日工资(integer),工资表的编号(long integer),姓名(alpha 8),日工资(number),出勤天数(long integer),奖金(number),安装费(number),工资年度(number),工资月份(number),
3、在delphi的 SQL Explorer运行
insert into 工资表(编号,姓名,日工资,出勤天数,奖金,安装费,工资年度,工资月份)
select distinct 序号,姓名,日工资,25,0,0,2003,3 from 人员信息表
的报错提示为‘Type mismatch in expression’;请教错在哪?4、实际的例子见下:
var
temp,asql:string;
i:integer;date1,date2:tdatetime;
begin
table1.Filter:='工资年度='+se_year.Text +' and 工资月份='+se_month.Text ;
table1.Filtered:=true;
if table1.RecordCount=0 then
begin
temp:='select distinct 序号,姓名,日工资,25,0,0,'+se_year.Text+','+se_month.text+' from 人员信息表.db';
asql:='insert into 工资表(编号,姓名,日工资,出勤天数,奖金,安装费,工资年度,工资月份) ' +
' select distinct 序号,姓名,日工资,25,0,0,'+se_year.Text+','+se_month.text+' from 人员信息表.db;';
query1.SQL.Text :=asql;
query1.ExecSQL;
table1.Refresh;
table1.First; for i:=0 to table1.recordcount-1 do
begin
query1.Close;
query1.sql.Text:='select sum(安装费) from 安装记录表.db where 主安装人='''
+table1.Fields[1].AsString+''''+' and 安装日期>=:d1 and 安装日期<:d2'; date1:=encodedate(se_year.Value,se_month.Value ,1);
date2:=encodedate(se_year.Value,se_month.Value+1,1);
query1.ParamByName('d1').AsDateTime:=date1;
query1.ParamByName('d2').AsDateTime:=date2;
query1.Open;
各位大虾,就是上面的,跟踪在table1.Refresh,提示的信息是‘Type mismatch in expression’;请教错在哪?怎么解决呢
用
showmessage(query1.sql.text);
调试一下