VS2019 64bit
把201032bit的專案移植過來
OBDC接續的時候
SQLFETCH的回值(下面紅字)報錯-1
請問大神怎么解決
int CDbAbsotime::DbGetAbsotimeSetArray(CString where, DbAbsotimeSetArray& array)
{
CString sql;
HSTMT hst;
RETCODE rc;
SQLLEN cb;
// ここで自分以外のmdbに接続するのを止める=>ここでの取得は接続しているDBからに変更
// 絶対期?相対期を取得するmdbは必ず1期のmdb(PlusI100_1.mdb)とすること!
// 1期のmdb(PlusI100_1.mdb)が存在しない場合はエラー
//CString mdbFileName="";
//if (!GetMdbFileName(1, mdbFileName)) return FALSE;
//CString DbBasePWD; DbBasePWD.LoadString(IDC_DB_PWD);
//CString tableName = "pi_absotime";
//CString tbl; tbl.Format("[;DATABASE=%s;PWD=%s].[%s] ", mdbFileName, DbBasePWD, tableName);
CString tbl = _T("pi_absotime ");
sql = _T("SELECT ");
sql += _T("soutaiki, time_s, time_e, zettaiki ");
sql += _T("FROM ");
sql += tbl;
sql += where;
if (DoSQL(sql, &hst)) {
return FALSE;
}
DbAbsotimeSet absotimeSet;
int seq = 1;
// 數値型は一旦charへFETCHする
char soutaiki [32];
char time_s [32];
char time_e [32];
char zettaiki [32];
SQLBIND(hst, seq, SQL_C_CHAR, soutaiki, 1, &cb); seq++;
SQLBIND(hst, seq, SQL_C_CHAR, time_s , 1, &cb); seq++;
SQLBIND(hst, seq, SQL_C_CHAR, time_e , 1, &cb); seq++;
SQLBIND(hst, seq, SQL_C_CHAR, zettaiki , 1, &cb); seq++;
array.RemoveAll();
while( 1 ) {
sprintf(soutaiki , _T("%d"), 0 );
sprintf(time_s ,_T(" %d") ,0 );
sprintf(time_e , _T("%d"), 0 );
sprintf(zettaiki , _T("%d"), 0 );
memset(&absotimeSet, NULL, sizeof(absotimeSet));
rc = SQLFETCH(hst);
if (SQLERROR(rc)) break;
// char値を數値に変換して構造體へ
absotimeSet.soutaiki = atoi(soutaiki );
absotimeSet.time_s = atoi(time_s );
absotimeSet.time_e = atoi(time_e );
absotimeSet.zettaiki = atoi(zettaiki );
array.Add(absotimeSet);
}
SQLDELHST(hst);
return array.GetSize();
} // End of DbGetAbsotimeSetArray
uj5u.com熱心網友回復:
https://docs.microsoft.com/zh-cn/sql/odbc/reference/syntax/sqlfetch-function?view=sql-server-ver15轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/20090.html
標籤:數據庫
上一篇:有關iWebBrowser2模擬flash點擊的問題
下一篇:求有關焊縫影像的資料集
