0

我在我的程序的第一个版本中成功运行了一个查询,使用 ADO 和 C++ 查询 MS Access 2007 数据库。

但是,我的数据库的结构必须修改。

曾经是 double 类型的字段现在是 varchar。

当我在修改后的数据库上执行相同的查询时,它应该报告数据类型不匹配。

编辑查询以帮助第一个解决方案的海报:

这是我的查询的简化版本:

wchar_t query = L" select ( ads(Field) + Field ) / 2 from MyTable where PrimaryKey = 1;";

字段是 double 类型,但现在是 varchar。

我试过CDbl这样使用:

wchar_t query = L" select ( abs( CDbl(Field) ) + CDbl(Field) ) / 2 from MyTable where PrimaryKey = 1;";

当我在 MS Access 中创建查询时它可以工作,但在我的程序中我仍然报告数据类型不匹配错误。

我试图在互联网上找到替代方案,并认为 CAST 或 CONVERT 可以解决这个问题,但似乎它们在 MS Access 中不起作用。

有什么解决方案吗?

谢谢你。

问候。

4

1 回答 1

1

您是否尝试在查询中而不是在查询运行后将值转换为Double

CAST 和 CONVERT 不是 Access SQL 函数

我不使用 c++,但即使使用 ADO 对象在 Access 中使用一个小的子例程,我也无法重现错误...

Sub test()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim db As ADODB.Connection

Set db = CurrentProject.Connection

rs.Open "SELECT (Abs(CDbl(Field))+CDbl(Field))/2 AS A FROM MyTable;", db

While rs.EOF = False
Debug.Print rs!A


rs.MoveNext
Wend

End Sub
于 2013-09-05T08:22:17.587 回答