勇芳软件工作室.汉化:  CSQLite Classes > CSQLiteStatement Class > ISQLiteStatement Interface >

Step Method

Previous pageReturn to chapter overviewNext page

描述

 

在使用准备准备好准备的语句之后,必须调用此方法一次或多次以评估该语句。

 

PB语法

 

METHOD Step () AS LONG

 

参数

 

该方法没有参数。

 

返回值

 

在旧版界面中,返回值将为SQLITE_BUSY,SQLITE_DONE,SQLITE_ROW,SQLITE_ERROR或SQLITE_MISUSE。使用“v2”界面,也可以返回任何其他结果代码或扩展结果代码。

 

SQLITE_BUSY表示数据库引擎无法获取完成其作业所需的数据库锁。如果该语句是COMMIT或发生在显式事务之外,则可以重试该语句。如果该语句不是COMMIT并发生在显式事务中,那么您应该在继续之前回滚该事务。

 

SQLITE_DONE表示语句已成功执行。不要在此虚拟机上再次调用,而无需先调用重启将虚拟机重置为初始状态。

 

如果正在执行的SQL语句返回任何数据,则每次新行数据准备好由调用者处理时,返回SQLITE_ROW.可以使用列访问功能来访问这些值。再次调用sqlite3_step以检索下一行数据。

 

SQLITE_ERROR表示发生运行时错误(如约束违规)。虚拟机不应再次调用.有关详细信息,请调用ErrMsg.使用传统接口,可以通过在准备语句中调用重启获取更具体的错误代码(例如,SQLITE_INTERRUPT,SQLITE_SCHEMA,SQLITE_CORRUPT等)。在“v2”界面中,直接返回更具体的错误代码。

 

SQLITE_MISUSE意味着这个函数被调用不当。也许这是在已经完成的准备好的语句中被调用的,或者是之前已经返回SQLITE_ERROR或SQLITE_DONE的语句。或者可能是同一个数据库连接在同一时刻被两个或多个线程使用的情况。

 

备注

 

对于所有版本的SQLite,直到并包括3.6.23.1,在重启之后返回了除了SQLITE_ROW之外的任何东西,在任何后续调用之前,都需要调用重启.如果未使用重启重置预准备语句,则会导致SQLITE_MISUSE从返回。但在版本3.6.23.1之后,在这种情况下自动调用重启而不是返回SQLITE_MISUSE。这不被认为是兼容性破坏,因为任何收到SQLITE_MISUSE错误的应用程序都被定义破坏。SQLITE_OMIT_AUTORESET编译时选项可用于还原旧版行为。