您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ sqlite3FixExpr函数代码示例

51自学网 2021-06-03 08:14:00
  C++
这篇教程C++ sqlite3FixExpr函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中sqlite3FixExpr函数的典型用法代码示例。如果您正苦于以下问题:C++ sqlite3FixExpr函数的具体用法?C++ sqlite3FixExpr怎么用?C++ sqlite3FixExpr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了sqlite3FixExpr函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: sqlite3FixExpr

int sqlite3FixExpr(  DbFixer *pFix,     /* Context of the fixation */  Expr *pExpr        /* The expression to be fixed to one database */){  while( pExpr ){    if( pExpr->op==TK_VARIABLE ){      if( pFix->pParse->db->init.busy ){        pExpr->op = TK_NULL;      }else{        sqlite3ErrorMsg(pFix->pParse, "%s cannot use variables", pFix->zType);        return 1;      }    }    if( ExprHasProperty(pExpr, EP_TokenOnly) ) break;    if( ExprHasProperty(pExpr, EP_xIsSelect) ){      if( sqlite3FixSelect(pFix, pExpr->x.pSelect) ) return 1;    }else{      if( sqlite3FixExprList(pFix, pExpr->x.pList) ) return 1;    }    if( sqlite3FixExpr(pFix, pExpr->pRight) ){      return 1;    }    pExpr = pExpr->pLeft;  }  return 0;}
开发者ID:yongningfu,项目名称:sqlite,代码行数:26,


示例2: sqlite3FixSrcList

int sqlite3FixSrcList(  DbFixer *pFix,         SrcList *pList       ){  int i;  const char *zDb;  struct SrcList_item *pItem;  if( NEVER(pList==0) ) return 0;  zDb = pFix->zDb;  for(i=0, pItem=pList->a; i<pList->nSrc; i++, pItem++){    if( pItem->zDatabase==0 ){      pItem->zDatabase = sqlite3DbStrDup(pFix->pParse->db, zDb);    }else if( sqlite3StrICmp(pItem->zDatabase,zDb)!=0 ){      sqlite3ErrorMsg(pFix->pParse,         "%s %T cannot reference objects in database %s",         pFix->zType, pFix->pName, pItem->zDatabase);      return 1;    }#if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_TRIGGER)    if( sqlite3FixSelect(pFix, pItem->pSelect) ) return 1;    if( sqlite3FixExpr(pFix, pItem->pOn) ) return 1;#endif  }  return 0;}
开发者ID:qtekfun,项目名称:htcDesire820Kernel,代码行数:26,


示例3: sqlite3FixSrcList

/*** The following set of routines walk through the parse tree and assign** a specific database to all table references where the database name** was left unspecified in the original SQL statement.  The pFix structure** must have been initialized by a prior call to sqlite3FixInit().**** These routines are used to make sure that an index, trigger, or** view in one database does not refer to objects in a different database.** (Exception: indices, triggers, and views in the TEMP database are** allowed to refer to anything.)  If a reference is explicitly made** to an object in a different database, an error message is added to** pParse->zErrMsg and these routines return non-zero.  If everything** checks out, these routines return 0.*/int sqlite3FixSrcList(  DbFixer *pFix,       /* Context of the fixation */  SrcList *pList       /* The Source list to check and modify */){  int i;  const char *zDb;  struct SrcList_item *pItem;  if( NEVER(pList==0) ) return 0;  zDb = pFix->zDb;  for(i=0, pItem=pList->a; i<pList->nSrc; i++, pItem++){    if( pFix->bVarOnly==0 ){      if( pItem->zDatabase && sqlite3StrICmp(pItem->zDatabase, zDb) ){        sqlite3ErrorMsg(pFix->pParse,            "%s %T cannot reference objects in database %s",            pFix->zType, pFix->pName, pItem->zDatabase);        return 1;      }      sqlite3DbFree(pFix->pParse->db, pItem->zDatabase);      pItem->zDatabase = 0;      pItem->pSchema = pFix->pSchema;    }#if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_TRIGGER)    if( sqlite3FixSelect(pFix, pItem->pSelect) ) return 1;    if( sqlite3FixExpr(pFix, pItem->pOn) ) return 1;#endif  }  return 0;}
开发者ID:yongningfu,项目名称:sqlite,代码行数:43,


示例4: sqlite3FixSelect

int sqlite3FixSelect(  DbFixer *pFix,       /* Context of the fixation */  Select *pSelect      /* The SELECT statement to be fixed to one database */){  while( pSelect ){    if( sqlite3FixExprList(pFix, pSelect->pEList) ){      return 1;    }    if( sqlite3FixSrcList(pFix, pSelect->pSrc) ){      return 1;    }    if( sqlite3FixExpr(pFix, pSelect->pWhere) ){      return 1;    }    if( sqlite3FixExpr(pFix, pSelect->pHaving) ){      return 1;    }    pSelect = pSelect->pPrior;  }  return 0;}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:21,


示例5: sqlite3FixSelect

int sqlite3FixSelect(  DbFixer *pFix,         Select *pSelect      ){  while( pSelect ){    if( sqlite3FixExprList(pFix, pSelect->pEList) ){      return 1;    }    if( sqlite3FixSrcList(pFix, pSelect->pSrc) ){      return 1;    }    if( sqlite3FixExpr(pFix, pSelect->pWhere) ){      return 1;    }    if( sqlite3FixExpr(pFix, pSelect->pHaving) ){      return 1;    }    pSelect = pSelect->pPrior;  }  return 0;}
开发者ID:qtekfun,项目名称:htcDesire820Kernel,代码行数:21,


示例6: sqlite3FixSelect

int sqlite3FixSelect(  DbFixer *pFix,       /* Context of the fixation */  Select *pSelect      /* The SELECT statement to be fixed to one database */){  while( pSelect ){    if( sqlite3FixExprList(pFix, pSelect->pEList) ){      return 1;    }    if( sqlite3FixSrcList(pFix, pSelect->pSrc) ){      return 1;    }    if( sqlite3FixExpr(pFix, pSelect->pWhere) ){      return 1;    }    if( sqlite3FixExprList(pFix, pSelect->pGroupBy) ){      return 1;    }    if( sqlite3FixExpr(pFix, pSelect->pHaving) ){      return 1;    }    if( sqlite3FixExprList(pFix, pSelect->pOrderBy) ){      return 1;    }    if( sqlite3FixExpr(pFix, pSelect->pLimit) ){      return 1;    }    if( pSelect->pWith ){      int i;      for(i=0; i<pSelect->pWith->nCte; i++){        if( sqlite3FixSelect(pFix, pSelect->pWith->a[i].pSelect) ){          return 1;        }      }    }    pSelect = pSelect->pPrior;  }  return 0;}
开发者ID:cris-auts,项目名称:linux_c_study,代码行数:38,


示例7: sqlite3FixExprList

int sqlite3FixExprList(  DbFixer *pFix,     /* Context of the fixation */  ExprList *pList    /* The expression to be fixed to one database */){  int i;  struct ExprList_item *pItem;  if( pList==0 ) return 0;  for(i=0, pItem=pList->a; i<pList->nExpr; i++, pItem++){    if( sqlite3FixExpr(pFix, pItem->pExpr) ){      return 1;    }  }  return 0;}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:14,


示例8: sqlite3FixExprList

int sqlite3FixExprList(  DbFixer *pFix,       ExprList *pList    ){  int i;  struct ExprList_item *pItem;  if( pList==0 ) return 0;  for(i=0, pItem=pList->a; i<pList->nExpr; i++, pItem++){    if( sqlite3FixExpr(pFix, pItem->pExpr) ){      return 1;    }  }  return 0;}
开发者ID:qtekfun,项目名称:htcDesire820Kernel,代码行数:14,


示例9: sqlite3FixTriggerStep

int sqlite3FixTriggerStep(  DbFixer *pFix,     /* Context of the fixation */  TriggerStep *pStep /* The trigger step be fixed to one database */){  while( pStep ){    if( sqlite3FixSelect(pFix, pStep->pSelect) ){      return 1;    }    if( sqlite3FixExpr(pFix, pStep->pWhere) ){      return 1;    }    if( sqlite3FixExprList(pFix, pStep->pExprList) ){      return 1;    }    pStep = pStep->pNext;  }  return 0;}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:18,


示例10: sqlite3FixExpr

int sqlite3FixExpr(  DbFixer *pFix,     /* Context of the fixation */  Expr *pExpr        /* The expression to be fixed to one database */){  while( pExpr ){    if( ExprHasAnyProperty(pExpr, EP_TokenOnly) ) break;    if( ExprHasProperty(pExpr, EP_xIsSelect) ){      if( sqlite3FixSelect(pFix, pExpr->x.pSelect) ) return 1;    }else{      if( sqlite3FixExprList(pFix, pExpr->x.pList) ) return 1;    }    if( sqlite3FixExpr(pFix, pExpr->pRight) ){      return 1;    }    pExpr = pExpr->pLeft;  }  return 0;}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:18,


示例11: sqlite3FixExpr

int sqlite3FixExpr(  DbFixer *pFix,     /* Context of the fixation */  Expr *pExpr        /* The expression to be fixed to one database */){  while( pExpr ){    if( sqlite3FixSelect(pFix, pExpr->pSelect) ){      return 1;    }    if( sqlite3FixExprList(pFix, pExpr->pList) ){      return 1;    }    if( sqlite3FixExpr(pFix, pExpr->pRight) ){      return 1;    }    pExpr = pExpr->pLeft;  }  return 0;}
开发者ID:MagicalTux,项目名称:nezumi,代码行数:18,


示例12: sqlite3FixTriggerStep

int sqlite3FixTriggerStep(  DbFixer *pFix,       TriggerStep *pStep ){  while( pStep ){    if( sqlite3FixSelect(pFix, pStep->pSelect) ){      return 1;    }    if( sqlite3FixExpr(pFix, pStep->pWhere) ){      return 1;    }    if( sqlite3FixExprList(pFix, pStep->pExprList) ){      return 1;    }    pStep = pStep->pNext;  }  return 0;}
开发者ID:qtekfun,项目名称:htcDesire820Kernel,代码行数:18,


示例13: sqlite3FixExpr

int sqlite3FixExpr(  DbFixer *pFix,       Expr *pExpr        ){  while( pExpr ){    if( ExprHasAnyProperty(pExpr, EP_TokenOnly) ) break;    if( ExprHasProperty(pExpr, EP_xIsSelect) ){      if( sqlite3FixSelect(pFix, pExpr->x.pSelect) ) return 1;    }else{      if( sqlite3FixExprList(pFix, pExpr->x.pList) ) return 1;    }    if( sqlite3FixExpr(pFix, pExpr->pRight) ){      return 1;    }    pExpr = pExpr->pLeft;  }  return 0;}
开发者ID:qtekfun,项目名称:htcDesire820Kernel,代码行数:18,


示例14: sqlite3FixSrcList

/*** The following set of routines walk through the parse tree and assign** a specific database to all table references where the database name** was left unspecified in the original SQL statement.  The pFix structure** must have been initialized by a prior call to sqlite3FixInit().**** These routines are used to make sure that an index, trigger, or** view in one database does not refer to objects in a different database.** (Exception: indices, triggers, and views in the TEMP database are** allowed to refer to anything.)  If a reference is explicitly made** to an object in a different database, an error message is added to** pParse->zErrMsg and these routines return non-zero.  If everything** checks out, these routines return 0.*/int sqlite3FixSrcList(  DbFixer *pFix,       /* Context of the fixation */  SrcList *pList       /* The Source list to check and modify */){  int i;  const char *zDb;  struct SrcList_item *pItem;  if( pList==0 ) return 0;  zDb = pFix->zDb;  for(i=0, pItem=pList->a; i<pList->nSrc; i++, pItem++){    if( pItem->zDatabase==0 ){      pItem->zDatabase = sqliteStrDup(zDb);    }else if( sqlite3StrICmp(pItem->zDatabase,zDb)!=0 ){      sqlite3ErrorMsg(pFix->pParse,         "%s %T cannot reference objects in database %s",         pFix->zType, pFix->pName, pItem->zDatabase);      return 1;    }    if( sqlite3FixSelect(pFix, pItem->pSelect) ) return 1;    if( sqlite3FixExpr(pFix, pItem->pOn) ) return 1;  }  return 0;}
开发者ID:kanbang,项目名称:Colt,代码行数:38,


示例15: sqlite3FinishTrigger

/* ** This routine is called after all of the trigger actions have been parsed ** in order to complete the process of building the trigger. */SQLITE_PRIVATE void sqlite3FinishTrigger(                                         Parse *pParse,          /* Parser context */                                         TriggerStep *pStepList, /* The triggered program */                                         Token *pAll             /* Token that describes the complete CREATE TRIGGER */){    Trigger *pTrig = pParse->pNewTrigger;   /* Trigger being finished */    char *zName;                            /* Name of trigger */    sqlite3 *db = pParse->db;               /* The database */    DbFixer sFix;                           /* Fixer object */    int iDb;                                /* Database containing the trigger */    Token nameToken;                        /* Trigger name for error reporting */        pParse->pNewTrigger = 0;    if( NEVER(pParse->nErr) || !pTrig ) goto triggerfinish_cleanup;    zName = pTrig->zName;    iDb = sqlite3SchemaToIndex(pParse->db, pTrig->pSchema);    pTrig->step_list = pStepList;    while( pStepList ){        pStepList->pTrig = pTrig;        pStepList = pStepList->pNext;    }    nameToken.z = pTrig->zName;    nameToken.n = sqlite3Strlen30(nameToken.z);    sqlite3FixInit(&sFix, pParse, iDb, "trigger", &nameToken);    if( sqlite3FixTriggerStep(&sFix, pTrig->step_list)       || sqlite3FixExpr(&sFix, pTrig->pWhen)       ){        goto triggerfinish_cleanup;    }        /* if we are not initializing,     ** build the sqlite_master entry     */    if( !db->init.busy ){        Vdbe *v;        char *z;                /* Make an entry in the sqlite_master table */        v = sqlite3GetVdbe(pParse);        if( v==0 ) goto triggerfinish_cleanup;        sqlite3BeginWriteOperation(pParse, 0, iDb);        z = sqlite3DbStrNDup(db, (char*)pAll->z, pAll->n);        sqlite3NestedParse(pParse,                           "INSERT INTO %Q.%s VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')",                           db->aDb[iDb].zName, SCHEMA_TABLE(iDb), zName,                           pTrig->table, z);        sqlite3DbFree(db, z);        sqlite3ChangeCookie(pParse, iDb);        sqlite3VdbeAddParseSchemaOp(v, iDb,                                    sqlite3MPrintf(db, "type='trigger' AND name='%q'", zName));    }        if( db->init.busy ){        Trigger *pLink = pTrig;        Hash *pHash = &db->aDb[iDb].pSchema->trigHash;        assert( sqlite3SchemaMutexHeld(db, iDb, 0) );        pTrig = sqlite3HashInsert(pHash, zName, sqlite3Strlen30(zName), pTrig);        if( pTrig ){            db->mallocFailed = 1;        }else if( pLink->pSchema==pLink->pTabSchema ){            Table *pTab;            int n = sqlite3Strlen30(pLink->table);            pTab = sqlite3HashFind(&pLink->pTabSchema->tblHash, pLink->table, n);            assert( pTab!=0 );            pLink->pNext = pTab->pTrigger;            pTab->pTrigger = pLink;        }    }    triggerfinish_cleanup:    sqlite3DeleteTrigger(db, pTrig);    assert( !pParse->pNewTrigger );    sqlite3DeleteTriggerStep(db, pStepList);}
开发者ID:pchernev,项目名称:Objective-C-iOS-Categories,代码行数:78,



注:本文中的sqlite3FixExpr函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ sqlite3GetVdbe函数代码示例
C++ sqlite3FindTable函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。