0

データベース IBM Informix で正常に動作していたアプリケーション...現在、SQL SERVER 2012 に移行しています..そして、これが起こり始めます。

例に従ってください。

sql = "select r_e_c_n_o_, zb1_larg, zb1_verniz from " & arq("zb1")
sql = sql & " where zb1_filial='" & filial("zb1") & "' and zb1_cod='" & dados_rotulo.b1_cod
sql = sql & "' and zb1_revpro='" & dados_rotulo.zb1_revpro & "'"
sql = sql & " and (d_e_l_e_t_ is null or d_e_l_e_t_ = ' ')"
rst_zb1.Open sql, cnn_db, adOpenForwardOnly, adLockReadOnly

以下のように読めばうまくいきます。

recno = rst_zb1.Fields!r_e_c_n_o_ ' return ok, return value: 5000
larg = rst_zb1.Fields!zb1_larg
verniz = rst_zb1.Fields!zb1_verniz

シーケンスを変更すると、クエリの最後の列を読み取る前に、recno 列の原因の値が返されません。なぜこれが起こっているのですか?

larg = rst_zb1.Fields!zb1_larg
verniz = rst_zb1.Fields!zb1_verniz
recno = rst_zb1.Fields!r_e_c_n_o_ 'return 0, it should return value: 5000
4

1 に答える 1

0

の代わりにadOpenKeysetまたはを使用してレコードセットを開いてみてください。それが役立つかどうかを確認してください。adOpenDynamicadOpenForwardOnly

于 2012-12-04T17:29:56.040 に答える