請考慮以下代碼並提出建議,爲什麼我不能解決在當前會話中創建的臨時表。解決通過CDatabase :: ExecuteSQL創建的臨時表
CDatabase cdb;
CString csConnectionString = "Dsn=prm2;Driver={INFORMIX 3.34 32 BIT};Host=10.XXX.XXX.XXX;Server=SRVNAME;Service=turbo;Protocol=olsoctcp;Database=DBNAME;Uid=user;Pwd=password";
cdb.OpenEx(csConnectionString, CDatabase::noOdbcDialog);
cdb.ExecuteSQL(CString("Set Isolation to Dirty Read"));
...
CString csStatement1 = "SELECT serno FROM TABLE1 into temp ttt_1;"
CString csStatement2 = "DROP TABLE ttt_1";
cdb.ExecuteSQL(csStatement1); // point1
cdb.ExecuteSQL(csStatement2); // point2
...
cdb.Close();
在點1一切都很好。在point2我有:
指定的表(ttt_1)不在數據庫中。狀態:S0002,本機:-206,產地:Informix的] [Informix ODBC驅動程序] [Informix的]
我試圖指定用戶名作爲前綴(如user.ttt_1
或);我試圖在csStatement1的相應聲明中創建永久性表格,並且每次都在point2失敗。但是當我試圖在csStatement1內兩次創建相同的臨時表時,我收到了臨時表已存在於會話中的消息。
請指教:什麼是錯的,我如何處理創建的臨時表。