通过ADO访问Oracle数据库中的一个数据表,我想要输出表中与输入内容对应的ID号,程序如下:
SQL> CREATE TABLE Position_table
  2 (
  3 ID INTEGER PRIMARY KEY,
  4 car_name VARCHAR2(30),
  5 position_name VARCHAR2(30)
  6 );
m_pRecordset.CreateInstance(__uuidof(Recordset));
CString strSql;
strSql.Format("select * from position_table where position_table.car_name='%s' and position_table.position_name='%s'",m_shiptype,m_scheme);
  BSTR bstrSQL=strSql.AllocSysString();
m_pRecordset->Open(bstrSQL,(IDispatch *)m_pConnection,adOpenStatic,adLockOptimistic,adCmdText);
  while(!m_pRecordset->adoEOF)
  {
......
  }m_shiptype,m_scheme为两个文本控件关联变量,position_table为数据表
我想问:如果输入的m_shiptype,m_scheme在数据表中存在,上面select语句输出的是ID么,此时的m_pRecordset指向何处?
        如果数据库中不存在所输入的内容,则上面select输出什么,是NULL么?此时m_pRecordset指向何处或值是多少?
请高手指点指点

解决方案 »

  1.   

    你可以用实际的SQL语句在数据库中进行测试,返回结果跟程序是一样的。
      

  2.   

    select * from position_table where position_table.car_name='%s' and position_table.position_name='%s'"1  select语句输出的是满足你条件的所有数据集。
    2  m_pRecordset 智能数据集指针指向你查询到本地的数据集地址。
    3  如果数据库中不存在所输入的内容,select输出为空记录集。m_pRecordset的指向空记录集。m_pRecordset->adoEOF 为真。
      

  3.   

    的SQL语句在数据库中进行测试时候,如果查找不到,只显示“未找到相应行”的提示信息