本人是新手,在VC中,连接SQL SERVER2005更新一个数据时出现:连接占线导致另一个hstmt,劳请各位高人指点迷津。源代码如下
void CBusDlg::OnChangeEditStart() 
{
UpdateData(TRUE);
CString sql,temp,temp0;
int i=0;
m_list_like.ResetContent();//清空LISTBOX;
if(m_start1!='%')
{
if(m_styl==IDC_RADIO2&&m_start1!="")
{
m_start1=m_start1+wildcard;
sql.Format("SELECT DISTINCT line from bus where line like '%s'",m_start1);
m_record.Open(CRecordset::forwardOnly,sql);
while(!m_record.IsEOF())
{
m_record.GetFieldValue("line",temp);
m_list_like.AddString(temp);
m_record.MoveNext();
}
m_record.Close();
}
else if(m_styl==IDC_RADIO1||m_styl==IDC_RADIO3)
{
CString sz="";
if(m_start1!=" "&&m_start1!=""&&(m_start1.GetLength()>2))
{
m_data.ExecuteSQL("DELETE FROM station");
temp=wildcard+'-'+m_start1+wildcard;
temp0=m_start1+wildcard;
sql.Format("SELECT DISTINCT name from bus where name like '%s' or name LIKE '%s'",temp,temp0);
m_record.Open(CRecordset::forwardOnly,sql);
while(!m_record.IsEOF())
{

m_record.GetFieldValue("name",sz);
if(sz!="")
{
ExtractCString(sz,m_start1); //执行这个函数后出现问题,此函数具体定义如下
}
m_record.MoveNext();

}
m_record.Close();
sql.Format("SELECT DISTINCT name FROM station");
m_record.Open(CRecordset::forwardOnly,sql);
while(!m_record.IsEOF())
{
m_record.GetFieldValue("name",temp);
m_list_like.AddString(temp);
m_record.MoveNext();
}
m_record.Close();
}
}
}
}
int CBusDlg::Count_(CString sz)
{
count_=0;
int i=0;
do
{
i=sz.Find('-',i)+1;
count_++;
}
while(sz.Find('-',i)!=-1);
return count_;
}BOOL CBusDlg::ExtractCString(CString name,CString station)//分解字符串
{
CString temp,sql;
for(int i=0;i<=Count_(name);i++)
{
AfxExtractSubString(temp,name,i,'-');
if(temp!=" "&&temp!="")
{
sql.Format("INSERT INTO station(stname) values('%s')",temp);
if(temp.Find(station,0)!=-1)
{
m_data.ExecuteSQL(sql); //执行该语句后跳出异常
}
}
}
return true;
}