to dyw(旺仔): 如果我的insert语句这样写: insert into table1(column1,column2,column3,column4) values(select table2.column1,table3.column2,value3,value4 from table2,table3 where table2.column3=table3.column3); 这样的话,如果语句 select table2.column1,table3.column2,value3,value4 from table2,table3 where table2.column3=table3.column3 没有得到符合条件的记录的话,那么前面的insert语句将不会插入任何记录。但是因为它的语法是正确的,SQLExecDirect仍然返回SQL_SUCCESS或者SQL_SUCCESS_WITH_INFO,我的目的是当出现这种情况时,我在程序中能够判断出这样的情况。 不知道我说清楚了没有?
先对符合条件的记录做一个计数: int iCount; select count(table2.column1 into :iCount,table3.column2,value3,value4 from table2,table3 where table2.column3=table3.column3; if (iCount>0 ) insert into table1(column1,column2,column3,column4) values(select table2.column1,table3.column2,value3,value4 from table2,table3 where table2.column3=table3.column3); else {消息提示:没有得到符合条件的记录!} 很久没做过数据库编程了,不知语法有没有错!
SQLRETURN retcode;
TCHAR szSQL[] = "INSERT INTO ...";
retcode = SQLExecDirect(hstmt,szSQL ,SQL_NTS);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
//success
...
} else {
SQLGetDiagRec(...);
}
如果我的insert语句这样写:
insert into table1(column1,column2,column3,column4)
values(select table2.column1,table3.column2,value3,value4 from table2,table3 where table2.column3=table3.column3);
这样的话,如果语句
select table2.column1,table3.column2,value3,value4 from table2,table3 where table2.column3=table3.column3
没有得到符合条件的记录的话,那么前面的insert语句将不会插入任何记录。但是因为它的语法是正确的,SQLExecDirect仍然返回SQL_SUCCESS或者SQL_SUCCESS_WITH_INFO,我的目的是当出现这种情况时,我在程序中能够判断出这样的情况。
不知道我说清楚了没有?
int iCount;
select count(table2.column1
into :iCount,table3.column2,value3,value4 from table2,table3 where table2.column3=table3.column3;
if (iCount>0 )
insert into table1(column1,column2,column3,column4)
values(select table2.column1,table3.column2,value3,value4 from table2,table3 where table2.column3=table3.column3);
else
{消息提示:没有得到符合条件的记录!}
很久没做过数据库编程了,不知语法有没有错!