我用delphi加SQL Server写数据库,这里遇到些垃圾问题,特向个位求教:
从与出勤表连接的T_attendance中获取出差时间temp1 它是single类型的。
从外部文件中获取,出差费temp,那么出差总金额:temp*temp1,我这样写的。temp:=temp*temp1;然后对结果进行判断。if temp>0 then 这里就出错了,
一调试就包错"Invalid Variant type conversion"请问个位大虾。
怎么解决这个问题。还有我有很多代码都出现这
种问题。是怎么会事???
另外:我在窗体中使用了QuickRep报表控键。在它上面添加了QRDBText,设置它的
dataset为职工表的连接控键T_person.DataField设置为员工号字段'ID',然后将
T_person的active改为true。按理说报表上面应该显示出,ID值才对啊。但是什么
也没显示出来!!!
还有用TADODataSet的Filter来过滤字段,当要过滤的是几个字段时,对数据库中的
表有什么要求吗???我过滤的时候,条件一多它就出错????
个位大虾,救我啊!!!!!!!

解决方案 »

  1.   

    可能是temp,temp1中有空值NULL,它是不能参与数学运算的,可以用ISNULL处理一下
      

  2.   

    Filter的条件是不能太复杂,不支持复杂的运算。TQuickRep,的dataset,也要设置
      

  3.   

    1,Temp1类型不对吧?
    3,条件错了
      

  4.   

    你的temp是什么类型呀,提示说你的类型不对,为转换一下,你把temp也变成 single型的,如果不行,你在换在real 看一下,我以前也遇到一次就是single,real的问题
      

  5.   

    temp是 single类型的.
    filter如果赋成,Type='T' and date=2000,就没错.
    如果改成这样.Type='T' and Person=1000 ,就出错.
    但是,单独写 person=1000,或者单独写Type='T'都没错.
    为什么.Type和Person组合就出错!!!!!!!!!!!!
    再加50分!!!!!!!!!!!!!
      

  6.   

    呵呵。第一个问题已经解决了。这里要感谢无天和各位的帮忙!!!!!!!!!!!
    谢谢大家。
    但是,TADOdataset的过滤问题还没解决。
    人事档案表中有字段"Person""Type""Work_Data""Yearmonth"等等。
    现在我要过滤这两个"Person"和"TYpe",
    如果单独过滤"Person"或"TYpe"都没问题。如果过滤"TYpe"和"Yearmonth"也没问题。
    但是如果过滤"Person"and"Type"就出问题了。说找不到字段或值不在范围之内。
    同时过滤多个字段的格式是什么样的??它们对表有什么要求吗???
    我想问是不是用SQL建表的时候有什么东西没有设定??
    QuickRep的DataSet设定了的。但是QRDBText只显示一个”ID".为什么???