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 に答える