当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: 我在编写com+ ,在编译时系统抱了如下错误: statement expected but "procedure" found 。是什么原因??? ......
 ·txt    »显示摘要«
    摘要: 我的txt文件里有好几行数据,我要如何写将它 一行一行读出来,然后insert到数据库中呢 ......


我要自动删除N条记录,vc+ado delete 但是经常定位出错:代码如下

我要自动删除N条记录,vc+ado   delete   但是经常定位出错,而且往往只能删除很少几条,速度很慢,请大侠帮忙:代码如下  
  if(pRecordSet.IsEOF()   &&   pRecordSet.IsBOF())   return;  
  int   _max_record   =   17000;  
  int   _temp   =   0;  
  if   (pRecordSet.GetRecordCount()   >   _max_record)    
  {  
  BOOL   b_exit   =   TRUE;  
  pRecordSet.MoveFirst();  
  do{  
  //Sleep(100);  
  //if(!pRecordSet.MoveFirst())   b_exit   =   FALSE;  
  if(!pRecordSet.Resync());else   b_exit   =   FALSE;  
  if(!pRecordSet.Delete())   b_exit   =   FALSE;  
  if(!pRecordSet.Resync());else   b_exit   =   FALSE;  
  if(!pRecordSet.MoveNext())   b_exit   =   FALSE;  
  if(_max_record   >=   pRecordSet.GetRecordCount())   b_exit   =   FALSE;  
  _temp   =   pRecordSet.GetRecordCount()   -   _max_record;  
  if(0   >   _temp   ||   _max_record   <   _temp)   b_exit   =   FALSE;  
  }while(b_exit);  
  }

NO.1   作者: san_huo

我晕     不用sql语句来删却用这种效率奇低的方法

NO.2   作者: axiaowin

 
    Transact-SQL   参考    
   
     
  DELETE  
  从表中删除行。  
   
  语法  
  DELETE  
          [   FROM   ]  
                  {   table_name   WITH   (   <   table_hint_limited   >   [   ...n   ]   )  
                    |   view_name  
                    |   rowset_function_limited  
                  }    
   
                  [   FROM   {   <   table_source   >   }   [   ,...n   ]   ]  
   
          [   WHERE  
                  {   <   search_condition   >  
                  |   {   [   CURRENT   OF  
                                  {   {   [   GLOBAL   ]   cursor_name   }  
                                          |   cursor_variable_name  
                                  }    
                          ]   }  
                  }    
          ]    
          [   OPTION   (   <   query_hint   >   [   ,...n   ]   )   ]  
   
  <   table_source   >   ::=  
          table_name   [   [   AS   ]   table_alias   ]   [   WITH   (   <   table_hint   >   [   ,...n   ]   )   ]  
          |   view_name   [   [   AS   ]   table_alias   ]  
          |   rowset_function   [   [   AS   ]   table_alias   ]  
          |   derived_table   [   AS   ]   table_alias   [   (   column_alias   [   ,...n   ]   )   ]  
          |   <   joined_table   >  
   
  <   joined_table   >   ::=  
          <   table_source   >   <   join_type   >   <   table_source   >   ON   <   search_condition   >  
          |   <   table_source   >   CROSS   JOIN   <   table_source   >  
          |   <   joined_table   >  
   
  <   join_type   >   ::=  
          [   INNER   |   {   {   LEFT   |   RIGHT   |   FULL   }   [OUTER]   }   ]  
          [   <   join_hint   >   ]  
          JOIN  
   
  <   table_hint_limited   >   ::=  
          {   FASTFIRSTROW  
                  |   HOLDLOCK  
                  |   PAGLOCK  
                  |   READCOMMITTED  
                  |   REPEATABLEREAD  
                  |   ROWLOCK  
                  |   SERIALIZABLE  
                  |   TABLOCK  
                  |   TABLOCKX  
                  |   UPDLOCK  
          }    
   
  <   table_hint   >   ::=  
          {   INDEX   (   index_val   [   ,...n   ]   )  
                  |   FASTFIRSTROW  
                  |   HOLDLOCK  
                  |   NOLOCK  
                  |   PAGLOCK  
                  |   READCOMMITTED  
                  |   READPAST  
                  |   READUNCOMMITTED  
                  |   REPEATABLEREAD  
                  |   ROWLOCK  
                  |   SERIALIZABLE  
                  |   TABLOCK  
                  |   TABLOCKX  
                  |   UPDLOCK    
          }    
   
  <   query_hint   >   ::=  
          {   {   HASH   |   ORDER   }   GROUP  
                  |   {   CONCAT   |   HASH   |   MERGE   }   UNION  
                  |   FAST   number_rows  
                  |   FORCE   ORDER  
                  |   MAXDOP  
                  |   ROBUST   PLAN  
                  |   KEEP   PLAN    
          }    
   
  参数  
  FROM  
   
  是可选的关键字,可用在   DELETE   关键字与目标   table_name、view_name   或   rowset_function_limited   之间。    
   
  table_name  
   
  是要从其中删除行的表的名称。    
   
  在其作用域内的   table   变量、或是将   OPENDATASOURCE   函数作为服务器名称的由四部分组成的表名还可以在   DELETE   语句中作为表源使用。  
   
  WITH   (<table_hint_limited>   [...n])  
   
  指定目标表所允许的一个或多个表提示。需要有   WITH   关键字和圆括号。不允许有   READPAST、NOLOCK   和   READUNCOMMITTED。有关表提示的更多信息,请参见   FROM。  
   
  view_name  
   
  是视图名称。在视图的   FROM   子句中,view_name   引用的视图必须可更新且正确引用一个基表。有关可更新视图的更多信息,请参见   CREATE   VIEW。  
   
   
   
  说明     如果表或视图存在于另一个数据库内或有一个不同于当前用户的所有者,则使用格式为   server_name.database.[owner].object_name   的由四部分组成的合法名称。有关更多信息,请参见   Transact-SQL   语法规则。  
   
   
 

NO.3   作者: axiaowin

rowset_function_limited  
   
  OPENQUERY   或   OPENROWSET   函数,视提供程序功能而定。有关提供程序所需功能的更多信息,请参见   OLE   DB   提供程序的   UPDATE   和   DELETE   语句要求。有关行集函数的更多信息,请参见   OPENQUERY   和   OPENROWSET。  
   
  FROM   <   table_source   >  
   
  指定附加的   FROM   子句。这个对   DELETE   的   Transact-SQL   扩展使您得以从   <table_sources>   指定数据,并从第一个   FROM   子句内的表中删除相应的行。    
   
  这个扩展指定联接,可在   WHERE   子句中取代子查询来标识要删除的行。    
   
  table_name   [[AS]   table_alias   ]    
  是为删除操作提供标准值的表名。  
   
  view_name   [   [   AS   ]   table_alias   ]    
  是为删除操作提供标准值的视图名称。带   INSTEAD   OF   UPDATE   触发器的视图不能是含有   FROM   子句的   UPDATE   的目标。  
   
  WITH   (<table_hint>    
  指定一个或更多表提示。有关表提示的更多信息,请参见   FROM。  
   
  rowset_function   [   [AS]   table_alias   ]    
  是行集函数名和可选别名。有关行集函数列表的更多信息,请参见行集函数。  
   
  derived_table   [AS]   table_alias    
  是从数据库中检索行的子查询。derived_table   用作对外部查询的输入。  
   
  column_alias    
  替换结果集内列名的可选别名。在选择列表中放入每个列的一个别名,并将整个列别名列表用圆括号括起来。    
  <joined_table>  
   
  由两个或更多表的积组成的结果集,例如:    
   
  SELECT   *  
  FROM   tab1   LEFT   OUTER   JOIN   tab2   ON   tab1.c3   =   tab2.c3  
          RIGHT   OUTER   JOIN   tab3   LEFT   OUTER   JOIN   tab4  
                  ON   tab3.c1   =   tab4.c1  
                  ON   tab2.c3   =   tab4.c3  
   
  对于多个   CROSS   联接,请使用圆括号来更改联接的自然顺序。  
   
  <join_type>  
   
  指定联接操作的类型。    
   
  INNER    
  指定返回每对匹配的行。废弃两个表中不匹配的行。如果未指定联接类型,则这是默认设置。  
   
  LEFT   [OUTER]    
  指定在结果集内包含左表中所有不满足指定条件的行,并将右表中的输出列设置为   NULL   以作为对内联接所返回的所有行的补充。  
   
  RIGHT   [OUTER]    
  指定在结果集内包含右表中所有不满足指定条件的行,并将左表中的输出列设置为   NULL   以作为对内联接所返回的所有行的补充。  
   
  FULL   [OUTER]    
  如果来自左表或右表的某行与选择准则不匹配,则指定在结果集内包含该行,并且将与另一个表对应的输出列设置为   NULL。除此之外,结果集中还包含通常由内联接返回的所有行。  
   
  JOIN    
  是表示在删除操作中使用   SQL-92   式联接的关键字。    
  ON   <search_condition>  
   
  指定联接所基于的条件。尽管经常使用列和比较运算符,但此条件可指定任何谓词,例如:  
   
  FROM   Suppliers   JOIN   Products    
          ON   (Suppliers.SupplierID   =   Products.SupplierID)  
   
  当条件指定列时,列不必具有相同的名称或数据类型;但是,如果数据类型不一致,则这些列必须相互兼容或是   Microsoft&reg;   SQL   Server&#8482;   能够隐性转换的类型。如果数据类型不能隐性转换,则条件必须使用   CAST   函数显式转换数据类型。    
   
  有关搜索条件和谓词的更多信息,请参见搜索条件。    
   
  CROSS   JOIN  
   
  指定两个表的矢量积。这将返回相同的行,就好像在旧式的非   SQL-92   式联接中并没有指定   WHERE   子句。  
   
  WHERE  
   
  指定用于限制删除行数的条件。如果没有提供   WHERE   子句,则   DELETE   删除表中的所有行。基于   WHERE   子句中所指定的条件,有两种形式的删除操作。    
   
  搜索删除指定搜索条件限定删除的行。  
   
   
  定位删除使用   CURRENT   OF   子句指定游标。删除操作在游标的当前位置发生。这比使用   WHERE   search_condition   子句限定删除的行的搜索   DELETE   精确。如果搜索条件不唯一标识单行,则搜索   DELETE   删除多行。    
  <search_condition>    
  指定删除行的限定条件。对搜索条件中可以包含的谓词数量没有限制。有关更多信息,请参见搜索条件。    
   
  CURRENT   OF    
  指定在指定游标的当前位置完成   DELETE。  
   
  GLOBAL    
  指定   cursor_name   指的是全局游标。  
   
  cursor_name    
  是从其中进行提取的打开游标的名称。当全局和局部游标都以   cursor_name   作为它们的名称存在时,如果指定   GLOBAL,则   cursor_name   引用全局游标,如果未指定   GLOBAL,则   cursor_name   引用局部游标。游标必须允许更新。  
   
  cursor_variable_name    
  是游标变量的名称。游标变量必须引用允许更新的游标。    
  OPTION   (<query_hint>   [,...n]   )  
   
  是表示使用优化程序提示自定义   SQL   Server   的语句处理的关键字。    
   
  {HASH   |   ORDER}   GROUP    
  指定在查询的   GROUP   BY   或   COMPUTE   子句中指定的聚合使用哈希或排列。  
   
  {MERGE   |   HASH   |   CONCAT}   UNION    
  指定所有的   UNION   操作通过合并、哈希或串联   UNION   集合来完成。如果指定了不止一个   UNION   提示,查询优化器就会从这些指定的提示中选择开销最少的策略。    
   
   
  说明     如果还为   FROM   子句中的某对链接表指定了   <joint_hint>,则这个提示优先于   OPTION   子句中所指定的任何   <join_hint>。  
 

NO.4   作者: TianChong

在程序时实现也可以用sql的呀,方法:  
  _ConnectionPtr   pConn;  
  pConn.CreateInstance(__uuidof(Connection));  
  //连接数据库...省略...  
  //然后建立这条删除语句,where后面是你的条件删除条件,我现在假设id>100的记录都要删除.  
  _bstr_t   strSQL="delete   from   yourtable   where   id>100";  
  pConn->Execute(strSQL,NULL,adCmdText);  
   
 


    摘要: 我暗恋的gg总喜欢夸我聪明,总说我是他认识的女孩中最聪明的。这说明他对我仅仅有做普通朋友的意思还是??? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE