这样赋值试试:
COleVariant var = 23.7892;

解决方案 »

  1.   

    编译没有问题,执行时会报错:First-chance exception in dbTest.exe (OLEAUT32.DLL): 0xC0000005: Access Violation.
      

  2.   

    因为你没有对var.vt字段进行初始化,就直接对var.dblVal赋值
    程序是根据vt字段来确认变量的类型应该这样写
    var.vt = VT_R8;
    var.dbl = 0.12345;因为COleVariant对VARIANT做了封装,用下面方式更简单
    RecSet.SetFieldValue("Temp0", COleVariant(test[0]));
    ...
    RecSet.SetFieldValue("Temp1", COleVariant(test[1]));
      

  3.   

    使用
    var.vt = VT_R8; 
    var.dblval = 0.12345; 
    RecSet.SetFieldValue("Temp0", var); 
    这样就没有出错.使用
    RecSet.SetFieldValue("Temp0", COleVariant(test[0])); 
    ... 
    RecSet.SetFieldValue("Temp1", COleVariant(test[1])); 
    还是会有相同的错误,不知为何?