考虑以下代码并建议,为什么我不能解决当前会话中创建的临时表。
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点,一切都很好。在第 2 点我有:
指定的表 (ttt_1) 不在数据库中。State:S0002,Native:-206,Origin:[Informix][Informix ODBC Driver][Informix]
我试图将用户名指定为前缀(如user.ttt_1
或"user".ttt_1
);我试图在csStatement1的相应语句中创建永久表,并且每次它在point2失败。但是当我尝试在csStatement1中创建相同的临时表两次时,我收到了临时表已经存在于会话中的消息。
请告知:出了什么问题,我该如何处理创建的临时表。