比如我要判断某个字段的数据类型是不是money型,判断的代码该怎么写?
if qryspm3yx.Fields[j].DataType=   then??

解决方案 »

  1.   

    if qryspm3yx.Fields[i].DataType = ftCurrency then
      

  2.   

    自己看定义
      TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord,
        ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,
        ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,
        ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString,
        ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob,
        ftVariant, ftInterface, ftIDispatch, ftGuid);
      

  3.   

    楼上的大哥,ftCurrency 是什么
      

  4.   

    else if qryspm3yx.Fields[j].DataType=ftCurrency  then
        SQL.Add('' + qryspm3yx.Fields[j].Text + ',')
    还是报那个错,不允许将数据类型varchar转换成money
      

  5.   

    ftCurrency Money field对就的数据类型是:type:   Currency   
    Rang:   -922337203685477.5808.. 922337203685477.5807
    Significant digits :  19-20  
    Size in bytes:        8
      

  6.   

    >>还是报那个错,不允许将数据类型varchar转换成money是查是否是 varchar text中有非法数值,而导致不能转换
      

  7.   

    .asstring .text .value 都是报同一个错
      

  8.   

    SQL.Add('' + qryspm3yx.Fields[j].Text + ',')
    估计你的SQL里面是不是多了一对单引号了!
      

  9.   

    我看过了该字段中存的都是整数,但是数据类型是money
      

  10.   

    ShoMessage(SQL.Text);看一下就知道了
      

  11.   

    SQL.Add('' + qryspm3yx.Fields[j].Text + ',')我是这么写的啊~~要疯了
      

  12.   

    把你最后合成的SQL.TEXT 方法出来看看!
      

  13.   

    SQL.Add('insert into 伤亡事故 values(');
                        for j:=0 to qryspm3yx.FieldCount-2 do
                          if qryspm3yx.Fields[j].Text ='False' then
                            SQL.Add('0,')
                          else if qryspm3yx.Fields[j].Text='True' then
                            SQL.Add('1,')
                          else if qryspm3yx.Fields[j].DataType=ftCurrency  then
                            SQL.Add('' + qryspm3yx.Fields[j].Text + ',')
                          else
                            SQL.Add('''' + qryspm3yx.Fields[j].Text + ''',');
                        if qryspm3yx.Fields[qryspm3yx.FieldCount-1].Text ='False' then
                          SQL.Add('0)')
                        else if qryspm3yx.Fields[qryspm3yx.FieldCount-1].Text='True' then
                          SQL.Add('1)')
                        else
                          SQL.Add('''' + qryspm3yx.Fields[qryspm3yx.FieldCount-1].Text + ''')');
      

  14.   

    我是说连接后的效果!
    你可以加个Memo1
    然后在Add之后
    Memo1.Text := qryspm3yx.SQL.Text;
    然后复制Memo1上的东西出来看一下!
      

  15.   

    insert into 伤亡事故 values(
    '01402695-7
    ',
    '32332',
    '2332',
    '2006-10-6',
    '323',
    '23',
    '23',
    '23',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '32233',
    '323',
    '',
    '',
    '',
    '',
    '(Memo)',
    '(Memo)',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '')
    其中32423是要插入的money类型
      

  16.   

    sorry 我发错了
    insert into 伤亡事故 values(
    '01402695-7
    ',
    '32332',
    '2332',
    '2006-10-6',
    '323',
    '23',
    '23',
    '23',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '32233',
    '323',
    '',
    '',
    '',
    '',
    '(Memo)',
    '(Memo)',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '32423',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '')
      

  17.   

    是不是判断有问题?else if qryspm3yx.Fields[j].DataType=ftCurrency  then
      

  18.   

    是不是判断有问题
    else if qryspm3yx.Fields[j].DataType=ftCurrency  then
    在这后面加一条ShowMessage('');看一下就知道了!
      

  19.   

    money对应的datatype是ftCurrency吗?
      

  20.   

    刚一步步调试,程序没有进else if qryspm3yx.Fields[j].DataType=ftCurrency  then
    后面的语句
      

  21.   

    qryspm3yx你双击它,然后把所有的字段都加进来,看看你那个MONEY字段生成的是什么类型,就有办法判断了!
      

  22.   

    晕,如果你加了一个Buntton1你要怎么看他的类型?
    就是在属性页的上面了!